All Posts By “Carlos Taborda”

Author

December 21, 2017 / Comments Off on Mike Simpson with IgnitionOne: How Architecture Has Helped to Be a Better Engineer

Show Details

Today we have Mike Simpson on the show.

He is the Principal Engineer for search at IgnitionOne, a web based system which specializes in ad campaign managing across multiple search engines.

On today’s episode, Mike offers insight on what it means to be a digital media suite, the daily stresses of technical debt, and how a background in architecture has helped him to be good at what he does.

Show Transcript

Carlos: Alright Mike, thank you so much for joining the show. How are you doing today?

Mike: I’m doing great. Thanks for having me.

Carlos: Alright Mike, it’s been a while since we did our pre-interview but I’m really excited and I’m glad that we’ve been able to connect to this interview. For those who don’t know you that are listening to the show, tell us a little bit about your background and what it is that you do.

Mike: Well, I’m a software engineer, an architect, and a bit of management. Currently my job title is Principal Engineer for Search for IgnitionOne. I actually did not study software engineering formally. I mean, I have one class in high school that was a long time ago. I started programming basically on my own when I was about 13 on a TRS80 Model 3 and kind of learned some basic programming, and took this class in high school and then didn’t do a whole lot. I mean, I wrote some things while I was in High School. But then I went to Georgia Tech to study architecture, and I studied architecture for four years, and then decided at that point I didn’t really want to be an architect. I was able to get a programming job based on being able to actually write some code and show what it is I wrote. I’ve kind of taken that and learned a lot along the way and done consulting work for the last five years of work for IgnitionOne which is a software product company. Basically, just trying to learn as much as possible and do the best job I can with it.

Carlos: Alright. Mike, that’s great. Now, one of the things that will help us get some more context is tell us a little bit about what is IgnitionOne does. And just for those who are listening the idea today is we’re going to talk a little bit about Mike’s experience through his career, but also about his role at IgnitionOne, and some of the experiences he’s had as an engineer especially one coming from a non-traditional engineering background such as architecture and how that shaped some of his career. So Mike, tell me a little bit about what does ignition want to do, who are their customers and etc.

Mike: Ok, so IgnitionOne is a software company. We have a product that, well for the past few years it’s been called the Digital Management Suite or Digital Media Suite. But what the company does is we have a software platform for managing ad campaigns on Google, and Bing and various search engines like Facebook. But where we differ from a lot of companies in that space is that we cover multiple channels, so we have search, we have display advertising which is for example if you’re just browsing around the web and if you’re on cnn.com or whatever and they have a space on their page for ads, those are supplied through a central broker like Google or company like that and we work with them to coordinate those ad campaigns. Our customers are usually large companies like Fortune 500 companies, those kinds of large retailers and things like that. So what they’ll do is they can use our software to manage ad campaigns across multiple engines and also tie together different channels. So for example, if we serve you an ad and you click on it, we’re able to kind of tie that into other types of campaigns, email or that kind of thing.

Carlos: Very interesting.

Mike: Basically, our job is about making sure that we support all the features that our customers need in order to make these campaigns successful to optimize these campaigns so that they can get the most bank for their buck. I can talk a little more about that maybe in a few minutes. But one thing that kind of surprises some people about that is that advertisers don’t necessarily want to show as many ads to as many people as possible. They may not even want you to click on an ad. They want to show the right ads to the right people. But there are some fairly significant problems of scale that come with this space and this is something that’s been new for me since I came to IgnitionOne about 5 years ago. Prior to that I’ve done some things that had involved some scale but it was a different type of scale. For example, instead of simply large amounts of data or large numbers of users. IgnitionOne mainly has large volumes of data, but large amount of activities happening in the system at all the time but it may not be based on large numbers of users, so we have to consider problems of scale but it is more like a lot of it is automated activity and we have to think about how to make that efficient and that kind of thing. Those are really interesting problems to me.

Carlos: It’s definitely sound interesting. One of the biggest things is that you’re solving a problem that needs, it’s not an easy problem to solve because as you said they are trying to get the most value for their dollars, and that is a complex problem to solve. Meaning that if you mess up, not if you mess up, but if the feature doesn’t perform in a certain way there is an arrow eye by your customers, right? So you’re walking a fine line in essence.

Mike: That’s true. You know, I would say our company in particular that’s not a 100% our problem in that we are not an ad agency and we don’t generate content, so we don’t come up with the ads. But we facilitate our customers or the agencies that represent them, getting those ads into the system and making sure that the bid amounts are correct and being able to coordinate that activity across busy holiday weekend for example, Black Friday or Cyber Monday. There’s very tight timelines that these campaigns have to act too. Our software platform has to be stable so that those things can get done. And if they don’t, some of these advertisers spend large sums of money every month, and there are some risks associated with handling those accounts. For example, if an advertiser, and normally we might charge a small percentage, 1% or 2%, of whatever the advertisers is paying the search engine. So if one of our customers is paying Google million dollars a month or something we’ll get a small percentage as our revenue. However, if our system goes down and that traffic does make it to the advertisers and then they lose sales, we’re on the hook for whatever they still have to pay the engine, so that can be pretty scary.

Carlos: “I was a Principal Search Architect”, what does that role mean? I think in the engineering world we might think of that as somebody who builds search tools or internal search tools. But how does that apply at IgnitionOne when you guys are working with Google, you’re working with all these search engines, does it have to do anything with that or is it purely internal?

Mike: You know, you kind of hit the nail on the head. It is not that IgnitionOne is building a search engine. We don’t do that although I actually did built a search engine way back in my career maybe around 2000 or so. I actually built one as part of an internet for the company that I was working for at that time but that doesn’t really count. It’s nothing as sophisticated as what Google is doing. What we do for IgnitionOne, search is a vertical so it’s what we would call a channel. So that would be for example, if you went to Google and search for something and then you comeback with some results. Those results are broadly classified into two areas. There’s paid search ads which are ads that appear at the top and down the right side, and then the natural or organic results which are the actual search results. Our department, the search vertical within IgnitionOne is concerned about the paid search ads, so at the top and on the right. There are other companies that focus on organic search results like search engine optimization companies. I’ve already talked about display, that’s another channel. There is also email, social which will be Facebook and other channels like that. So we have a lot of custom integrations with our customers and with other partners. So as far as search goes, within IgnitionOne my job revolves around our software platform for managing ad campaigns that deal with direct search of the ads that show up in the search engine when you search for something.

Carlos: Got it, so yeah that’s what I kind of thought it would really lead to that because it could trigger some thoughts of, “Whoah, he is a search engineer”, which I know has its own kind of world. So talking kind of different worlds and backgrounds, again you’re education background was architecture, do you think this gives you an advantage or do you feel like it goes against what other people studied. How do you think that gives you like a unique perspective into your role?

Mike: I think it helps me be a better generalist. You can think of software engineers or probably any profession. You can kind of divide into specialists or generalists. I think myself as a pretty good generalist. I know a little bit about a lot of things. Actually there is a guy that I worked with that describes it the ideal thing to be is what he calls “T-shaped”. So you know a little bit about a lot of things and a lot about some subset of those so you have a lot of depth. I think I fit that mold. Architecture is also a profession that involves a lot of integration of a lot of disciplines. With that you really train both sides of your brain. You are turning both the visual side. The right side of your brain is more artistic and creative. As well as the left side because there is a lot of technical details that you have to master and your success is really determined by how well you integrate those two things. From that standpoint I think it’s similar. I will say it drives my wife nuts. Actually right now I don’t have this but for a long time I’ve had Architect in my title, she is an actual architect. And so this is kind of a running joke between us but it drives her nuts that I have Architect in my title but I’m not a building architect.

Carlos: And talking about that, I know that throughout your career you’ve had a little bit of switch between managing people and being a developer. Can you talk to us a little bit about that and which area do you feel more comfortable which is you preferred kind of area between management and being an actual engineer?

Mike: I kind of qualify this by saying that I haven’t spent a long amount of time as a manager. I spent maybe about two years as a manager of a development team at IgnitionOne, and I found it more rewarding than I thought it would be. Also more difficult that I thought it would be but it’s a very different job than programming or architecture. And I would say it doesn’t necessarily fit myself image as much as the more technical roles.

Carlos: Got you. So you feel more indentified with one of the other and I think what’s important is that people don’t need to feel that they are forced to being a manager when their nature is not to be one. It’s to be a really good engineer and that’s it, and then sometimes people think of being a manager is you’re not making any progress if you don’t pick to be a manager. But I don’t think that’s true. I’ve met a lot of people who go down the management track because they love it. But there are some that are like, “Ok, I’m forced to be manager now and I hate it.” It’s an interesting problem to have because in a way it’s supposed to mean progress but in other sometimes it isn’t. Talking a little bit about challenges, what are some of the challenges in your everyday life as an engineer? By that I mean what are the biggest areas of focus of your work as of now that push you or pull you to do a lot of work or to exercise your brain and learn things. What’s the biggest challenge right now?

Mike: I would say the biggest challenge I have at IgnitionOne is that within search we have a significant amount of code. A lot of it is really legacy code. This is code based and parts of it are 10 or 15 years old. We’ve probably got, if you count all the store procedures and things like that in the database and along with the rest of our code, it’s probably a million lines of code total. The biggest problem I have is that we have significant technical debt and to me that is both a symptom of and a compounding problem that is related to our business model. So this isn’t something that would necessarily apply to every company but I think there are probably people listening that can relate to this. One of the business drivers that we have, like I mentioned earlier, IgnitionOne operates in multiple channels with multiple large partners like Google, and Bing, and Facebook and whatnot. It’s important that we remain partners with those entities because it helps us not have to pay API fees, so we save a lot of money by being a partner. However, being a partner requires that you have to implement certain features according to your partner’s timeline. So Google can come to us two or three times a year and drop some features and say, “Ok, we have to implement X, Y and Z by this date.” Those features compete with those features that are product managers come up with and they also compete with technical debt. So when we have this kind of feature set that is dictated to us with a timeline it makes it difficult for us to be in control of our roadmap. And at times it creates very tight deadlines and it makes hard for us to, it both encourages us to cut corners and it also gives us less time to address technical debt, so over time the net effect of this is the dynamic where technical debt increases over time. So that’s probably the biggest problem that I have to deal with is trying to find ways to satisfy the deadlines while simultaneously addressing technical debt where I can try to keep it from getting worst over time.

Carlos: So this is going to sound like a painful question, maybe unfair, but again you guys have been around for a while and you’re talking about occurring technical debt as part of the business model just sometimes you’re forced not occurring as part of the business model but again through relationships, you’re forced to do a lot of that work so incur extra work that puts other work behind. But again, the company began for some time now there is legacy code I’m sure. Do you guys have dedicated resources just to handle those old systems, or are they integrated to the modern like the newer stack and what’s the plan for those? How do you plan for some of these legacy code while still dealing with not only your story work, your product work but also the partner work?

Mike: Well, the general approach that we try to take, there are certain times in the year, like late in the year, like during the holiday season and maybe in the first month or two of each year. We’ll have a little bit of breathing room to address the technical debt, so that’s given. Right now actually my team is addressing some technical debt and taking out some really ugly feature toggle and permission type code that’s been in there for a long time. Then we are replacing it with something better. A general approach that we try to take is with each new project we ask ourselves what are the pain points related to this and can we re-implement those as part of this project in a way that doesn’t cause it to take twice as long or three times as long. The challenge that I have is kind of the technical lead for search at IgnitionOne is indentifying which of the pain points within the system can I draw a box around and easily re-factor or re-implement it in a way that doesn’t involve a lot of risk for everything around it. As part of the issue with the legacy code is that it’s not especially well segregated so when you have a lot of tightly integrated code that doesn’t have boundaries within it it makes it very difficult to pull this one thing out and replace it with something better. That’s my job is to understand where the potential boundaries can be drawn in that code base such that we can improve it without involving a ton of risk.

Carlos: Is there a mechanism of prioritization for say some of your bandwidth whether it goes for A, B or C. Is there some or who prioritize it for you? How does the company prioritize those things? Generally speaking our prioritization is done by our product team so we have a team, product managers each. Within Search we have two development teams. Each one has its own product manager. They report to a higher level product manager. They are responsible for prioritizing the work that we do and I’m actually lump into one of those two development teams just from the standpoint of making sure that my work is accountable and tracked. But the actual work that I do spans to both of those teams. You know, I would say at IgnitionOne it’s not especially systematic in terms of, like one thing that I pushed for that we haven’t implemented yet is I suggested that we dedicate one or two people to technical debt reduction kind of a more long term basis. And basically modulate how much effort we devote to technical debt just by controlling how many people are working on it as opposed to kind of doing it on a project by project basis. You know, this would be true for most companies I would think even people practicing Scrum or whatever. The project managers are not necessarily in the best position to be able to evaluate and prioritize technical debt stories. That involves a lot of conversation with somebody like me who can articulate why this ugly piece of code is a problem and how it’s costing us money. Until they can understand why it’s a problem and why we should implement that before we tackle this new shiny feature, those kinds of things tend to fall by the wayside. That’s why I feel that it would be nice if we had a more systematic approach to addressing technical debt but currently at IgnitionOne we are more pragmatic about it. We basically surface technical debt stories. We have an epic for those and we put stories in the backlog to address technical debt and we have to have a lot of conversations to evaluate what we can do now versus later.Carlos: It’s interesting I think for others that are dealing with similar issues, I don’t want to call it an issue, but as similar challenge where technical debt is there, right, and some strategies to deal with it. I think it’s interesting just to start thinking of that as an idea of having dedicated people for it. Now, the last question before we head down to last three final questions but last question about the company and the career, what are you excited about? What are you excited about for the future? What’s the next thing in terms of projects? What’s one of those things that you can’t wait for?

Mike: Well, like I mentioned, we’re currently addressing some technical debt right now. That is fairly exciting to me but actually we have a project that is coming up which hopefully I mean is we haven’t kick it off yet but it’s slated to start pretty soon. It’s a project to rewrite one of our major backend services and if it pans out the way I’ve designed it, it should end up ultimately cutting our workload down on our backend services by 90%. In a nutshell we have to stay and sync, we have this big tree of hierarchical account or campaign data. We this big hierarchy with account at the top and then campaigns and under each campaign you have ad groups, and under ad group you have ads, keywords and various things. We have to keep the structure in sync between our system and between the engine. So if you go into our system and make a change, we have to push that to the engine. If you to the engine and make a change, we have to pull that to our system. So pulling that into our system is a very inefficient process right now. We basically pull the whole account from the engine which might be millions and millions of records and we compare everything with what’s in our database. And anything that’s different we update it in our system. Because it’s so big we can only do that every two days or so for most of our accounts. So the change here is to only pull for changes and the engine can now tell us what’s different.

Carlos: Got you. You know, that’s very interesting. It not only sounds like a cool challenge to work on we’re in fact doing something similar in one of our projects. Not 100% the same but I can see a couple of similarities and it’s definitely challenging, but challenging just again fun. Alright Mike, I have three last questions for you. The first one is what advice would you give your younger less experience self? Let’s say you run into yourself and you have to give yourself a good piece of advice, what would it be?

Mike: Well, when I first took my first professional programming job. Like I mentioned I didn’t have a formal education in programming, at least with the college level. I’ve interviewed a lot of college graduates who were in Computer Science or whatever and have done more programming than others. But when I first took my first programming job there were lot of little things that I didn’t know about the actual practice of programming. Things like creating a variable to represent constants, things like that. So in retrospect, you know, a lot of that kind of stuff is in that book Code Complete so I would probably say, if you’re starting out as a programmer just get a copy of that and throng through it and read it as you have time. It’s not necessarily, it might be a little bit outdated right now. There is a lot of more modern programming practices that are in there or that people do these days that are not necessarily covered in the book but there is a lot of really useful information in that. So that’s one thing I would say.

Carlos: Alright, and I guess that would be, my next question actually you might have answered. Well, what’s a book you would recommend some of these subjects, is that one of those?

Mike: That’s one book, I mean, I’ve got a whole book case full of books that I could probably pick from but let me think for a second. There is a book called for OO design, there is a book called “Head First Design Patterns” that I like quite a bit. I would say find some thought leaders. Ok, so this goes back to the first question. Sorry I’ve jumped around a little bit but, find some thought leaders in the space that you’re in. So if you’re into UI programming find some people in that space. If you’re into particular backend language C# or whatever find people who are luminaries in the space and follow them. Follow their podcasts and things like that. Like for example I follow Martin Fowler, Udi Dahan, Kundalini, and some other people like that. They have a lot of really good information a lot of times on their box, so that’s another good thing. One other book that I might recommend is more UI or design focus. I’ve actually recommended this to a friend of mine who is an architect in the landscape architect. But there is a book called “Universal Principles of Design” which is really interesting. I wouldn’t call it like a very deep scholarly book but it’s got a lot of really interesting topics laid out in a very clear easy to consume manner, so that’s a good one.

Carlos: Awesome, I think I heard of that book before but I don’t think it has been brought up in the podcast before so I think that’s a good one. Alright, and the last question I have for you is how people can find you and find your work? And if you guys are hiring at IgnitionOne, how can they apply and how can they be actually taken seriously? What’s something you respect when people apply for jobs?

Mike: Ok, so first question, how can people find me and my work? Probably the best things to do would be to go to my website which is www.slipjig.org. That has just information about me and contact information and things like that. I’m on LinkidIn and Facebook. I kind of would like to open up some source code that I’ve written. I’ve got a few quite side projects that I’ve done over the years that are mostly on Bitbucket but I haven’t open them up yet. It’s not really because I don’t want to be collaborative or anything like that. I just haven’t gotten around to kind of polishing everything up and kind of making it presentable. But that’s something I would like to do at some point. It’s kind of put some code out there so people can find it that way. As far as getting in touch with IgnitionOne, IgnitionOne is hiring. We have offices in Atlanta, in New York, and some other cities around the world. One of the best things I would say, if you come to IgnitionOne it’s a fairly casual style atmosphere. We have kind of trendy open type offices and casual address and all that kind of thing. One of the things that I look for when I interview people is I look for sense of curiosity. I not only want you to be a good programmer. We give programming exercises to most developer candidates but I look for somebody who is not dogmatic about this language versus that language who likes to use the best tool for the job at hand and who is curious to learn about new patterns and new technologies.

Carlos: I think it’s really interesting because sometimes people get carried away. I think It’s important to specialize in some cases but some people get carried away with instead of working on engineering principles they get carried away with one specific framework or language and so forth. I think engineering principles are stronger in my opinion.

Mike: Right, I mean even things like languages. You can say, ok well I’m not going to box myself into this one framework instead I’m going to focus on the language that’s little broader which it is but even so I’ve seen people getting religious about language. You know, like Java versus C# or whatever. I like both actually and I like some other languages that are pretty different than those. I just feel like that kind of person who would do well at IgnitionOne is the kind of person who is really, they just look at the relative merits or weaknesses of each technology and they are going to pick the best thing for that job and push for that. And also I would say this religious thing might extend to practices as well. At IgnitionOne we’re fans of automated unit testing. We write lots of automated unit tests but we’re not TDD practitioners, like we’re not porous about that. So we shouldn’t like some tests add more value than others, so one of the things you should do is ask yourself how much value is this adding. Once you’ve written quite a few test you understand what type of code is testable and you kind of default to doing it at that way. At that point it’s good to have automated test. We actually have a guy who is implementing automated test through our UI right now as well. I would say we’re not the type who would give a blanket rule and say you must always write a unite test first before you write any code for any code. It really depends on what you’re doing.

Carlos: Great illustration there, I agree 100%. Mike, I want to thank you so much for your time today. I think this has been amazing. I’m really glad that we got to have you on the show. It’s really interesting to see with somebody in search as you say is doing because you worry about different things. Again we all have our different context in which we all operate and I thought it was very funny that your wife doesn’t get the architect role. Because you’re an architect really like a real architect, but at the same time you’re an architect in systems. I think that’s hilarious, that’s really cool. But anyways, overall, I really appreciate your time with us today and really glad about having you on the show.

November 28, 2017 / Comments Off on Robert Stewart with Castlight: Process and Politics of a Company Merger

Show Details

Today we welcome Robert Stewart on the show.

Robert is in the midst of a merger with his company, Castlight. This is very exciting news for us at Gistia because we love having the opportunity to explore a new topic here on our show.

In this episode we discuss the overarching questions of what a merger is and what it means for Castlight as we dive in to the friction points that arise during the process.

Show Transcript

Carlos: Alright, Robert, thank you so much for coming on the show it’s been a long while coming. I’m very excited to have you here at Tech People. How are you?

Robert: Doing great. Thank you so much for inviting me to come on your podcast. I also have been really looking forward to it as well.

Carlos: Alright, well it’s my pleasure to have you. I know we’ve has some ups and downs getting this recorded. One of the good things that people may be listening to the show are now going to enjoy maybe as much as I did is that we got to meet in person almost by coincidence, because I wasn’t sure what was going on at that time, but we’re going to talk some of that story of. It will make sense after the end of this episode, but we got to meet in person. That was pretty cool.

Robert: Yes, really fantastic.

Carlos: Alright, so just to get into the meat of it. Robert, tell me a little bit about yourself and what it is that you do at Castlight.

Robert: Sure, so I grew up in South Mississippi. Found myself out in Houston at Rice in college, my degree is in Physics and Philosophy. When you get a degree, at least at that time, when you get a degree in Physics, you get a Bachelors degree it pretty qualifies you to get a Masters, and then PhD. And that’s kind of the path that I was thinking about going down. I just really wasn’t really sure what I wanted to do. I ended up moving to Austin after I graduated, getting a job at a research lab at UT Austin and then I was going to grad school there in Computer Engineering. The position that I got there just totally let into was involved underwater acoustics. A lot of the work that the team does at applied research labs, at least the groups I was working with, is working on sonars for submarines. And so I started, first I was doing studying of scattering of sounds and ocean sediments, so much more physics oriented. But you end up with a lot of data even then when I was doing this and much more so now. But a lot of what you have to do is analyze that data and often you to write around code and so I started doing a lot more coding. And I’ve done a fair amount of that in my college classes but doing it every day most of the day I was like, “Wow this is really cool.” And so I ended up on this project where we were working with the small submarine called the Inner 1. And what the sub does is it gets really close to the bottom and it sends a sound into the water column and gets reflection back, and then cross correlates the signals. We got two receivers and then we are able to create a 3D bitmap of the ocean bottom. This was in the early 1990’s, quite a while ago, so we did some really cool stuff using Inmos transputer, so as coding and this esoteric language called Occam. It was really nice super simple language but it existed just on these transmitters, but it’s very cool and so I got exposed to doing a little bit of a similar language programming and reading bits of serial ports and then doing 3D bitmaps and font shading and kind of image processing pipelines and parallel processing pipelines. I just got exposed to a lot of cool stuff and real time systems, and that converted me to like it. This is what I really want to do and kind of fell in love with it. And then after about 5 years I met my wife and she was working at UC Berkeley where she running the college radio station there and decided to actually I like that better. Getting married to her and moving out here better than staying in grad school, so wrapped all my course work and then headed out to the bay area, and that’s kind of how I got into software business out here.

Carlos: By the way when we first met you were the VP of Engineering at Castlight but now you are also the CTO, right? Tell me a little bit about your role today.

Robert: Yeah, so I still have a very operational role and that I have a group of about 35 engineers within our overall engineering team which is around 150 I believe kind of full time engineers. The teams that are in my group are mostly data science and some of the data engineering teams and then platform infrastructure. I have that kind of role over a lot of the data pipelines, building up provider directories and the pricing data that we do at Castlight, but then kind of this overall responsibility for technology at Castlight and kind of the choices that we make. I try to play this role of understanding what other teams are doing as well and helping them make the right choices. Always got to strike that balance of using the right tools and the right platforms but not kind of going too far where everybody is using something different and it becomes hard to manage. A lot of times I sit between the engineering team and what we call resilience engineering. They are part of the engineering team but a bit more of an operational role so I try and help out there because I had a lot of operations experience from previous jobs, and also between sales and customer experience and these other groups as well. So trying and help the rest of the company that’s outside of engineering understand the decisions we’re making and choices we’re making about kind of the direction of our platform.

Carlos: Yeah. In a moment I want to ask you a little bit about how engineering plays a role in the company. I think just to start off with our topic of today. The overarching topic is you guys merge with another company. We’re using the word merging by design. It could also be a purchase or a merger. And I think that’s kind of the story that is interesting to tell because there’s a little bit about it before and then after and also that in between is where you guys are at in a merger. Not only merging with another company from a business perspective, it’s a whole thing of its own. But now from an engineering perspective we are going to explore a little bit about what it means to merge from a technology perspective or from a staff perspective and kind of those experiences that you are going through. Just to make sure we are covering everybody that is not aware, what is Castlight? I think that’s the first question before we can really talk about this merger and why it happened? What is Castlight and what is the mission?

Robert: Yeah, great questions. So Castlight is a company now that is providing a health benefits platform. Mostly it’s for large self-insured employers. We also do work with some health plans, so this really companies that provide medical insurance and also Anthem would be a good example of that. And so what we do is we provide a service that has a web and mobile application that the family members that work at these large self-insured employers. They can login to this application. They can search for high quality providers, medical providers, general providers, pharmacists and find out like prices. They can find the price and quality information about these providers. They can also see information about their past cares, their medical claims, and prescription drug claims. And then we use a lot of that data to make recommendations to them and so it’s a very personalized experience. And so the goal of the company is to make kind of the navigating the healthcare system and getting the right care as simple as possible. So we try and remove a lot of the friction because anybody who spent any time dealing with the US healthcare system say, it’s very confusing, it’s very complicated. It is a huge industry and it’s about 18% of GDP in the United States, so just enormous industry. A lot of players and so it’s quite complicated. Since employers are providing these medical benefits a lot of times they provide very customized benefits to their employees, and then the way healthcare gets paid for is very complicated. So that’s the real goal is making it as easy as possible. It’s never going to be trivial because healthcare is just at its core. It’s complicated, you know, taking care of our bodies and taking care of diseases, that’s not pretty simple but we want to remove kind of the pain out of that. We kind of got started, it was around 2008, 2009, and 2010. Initially launched as this like Pricing and Quality Transparency Tool but we moved on pretty substantially and significantly from that really expand what we offer, and so now about 250 or so large self-insured employers on our platform. It’s about 7-8 million people in the United States that have access to the Castlight application.

Carlos: Wow! That could be a country of its own basically. That’s Switzerland right there. Alright, as we are talking about the merger, right, there must be another company that either you guys merged with or the other companies merged into you guys. That company is Jiff, correct?Robert: That’s right.

Carlos: What was Jiff? Why was Jiff a company that made sense to merge with and how did that meet kind of the strategy?

Robert: Sure, I know that you’ve interviewed Falko Buttler on this podcast and anybody who had listened to those would hear a lot more detail about Jiff, and did just have dinner with Falko just last night so it’s working out great with the team there. So Jiff was providing this really great mobile first well being platform that would engage employees around fun fitness oriented challenges and then also reward users for participating and benefit programs that their employers were sponsoring. Primarily it’s around activities so walking, like steps that you would take and track with this Fitbit or MSFit or Garmin or even Google Fit or some of their application on your phone, sleep tracking, nutrition, chronic condition management, so programs like that and that the employer really wants their… Unfortunately this is one of the cases where incentives are aligned that the employer wants their employees to be healthy, they want them to come to work to be productive and happy. And so they are willing to pay for that because they get serious benefit for that and it’s great for the employee as well. It’s like not, I wouldn’t say they are being manipulated to be healthy. I think everyone wants to be healthy and so that’s really great. And so what Jiff did is they’ve built this really great ecosystem with partners and with deep integrations with these programs. And so the Jiff systems gets information back as people participate in this program and so we can keep encouraging them to stay involved and stay active on these programs. Other focus of Jiff is really helping these employers and the employees get the most out of these employer sponsored benefit plans/benefit programs. There’s some really great programs around maternity benefits and disease management, and one of the big problems is getting awareness of those. This is kind of the area where there was overlap between the approach of Castlight-Jiff that we both kind of coming to this. These employers are offering these benefits programs. They are having difficulties reaching out to the right employees and some cases they don’t have sufficient information about like who would benefit the most. And some employees they might see it a little bit creepy if your employer reaches out to you and says, “Hey, you should sign up for this diabetes program or this maternity program.” That might be a little too big brotherish but as being a third party company and we protect all these data we don’t provide specific identified data back to the employers, we’re able to reach out to them. And because we have more data and we combine it together we’re able to identify the right people. So what we are trying to do is by looking at this data, giving this personalize experience is finding the best benefit programs for you or for the employee or the family member in reaching to them at the right time. So maybe when you went through open enrollment, you know, everything is great and you saw all these lists of benefit programs and there was something in there about, say, a diabetes management program and you’re like, “Well, that doesn’t apply to me.” But then 6 months later you got this diagnosis of pre-diabetes but you have forgotten that there is this program that you might really benefit from. So we would see that on the data and we could reach out to you on the application and set that up as like a recommended program and then connect you directly into it. Again, like reducing the friction making it as easy as possible to take advantage of these programs.

Carlos: Talking about friction, what are some friction points when you thought of we’re merging with this other company. What are some of the risk? What are some of the red flags? And maybe you don’t need to tell us, you know some of this is confidential, but maybe at a high level what’ something that as a VP of Engineering or again now as CTO and VP of Engineering. What are some things to consider, right, when thinking of a process such as this? What are some risks? What are some negatives? What are some things to kind of look out for and what are some positives? What are some of the motivations for a merger? After that I want to start talking about like some of the challenges you’ve had with your team because you have a growing team. Though in order to, you know, you had to kind of made those decisions ahead in order to validate. Is it worth it having some of these other problems that are going to arise? We call them problems but are now challenges, so what was that initial process and summing things up and down from a technology kind of perspective.

Robert: Yeah sure. First I want to go back to something that we talked a little bit earlier and then I’ll get right into that. So merger versus acquisition and kind of like meaning of these things so, and some of this does lead to like kind of challenges that can come up when one company buys another one and I’ve been on both sides of this so. I’ve been like multiple times been at companies that have been acquired or merged with and so I know what that experience is like, and can’t or can be like. So technically speaking a merger is when a new legal entity merges out of two previous lead existing entities and in the strict case that there is a new name for it and it is really is separate from kind of the previous entities. An acquisition is when the acquired entity is absorbed into the acquiring entity. And so that, they kind of the buyer sort of continues on and the company that’s bought moves into it. But these terms get used really loosely and part of it I think is just the notion that just the sound of acquisition so it’s like you’re being assimilated into a borg. So merger sounds nice but actual true mergers are not that common. It’s more about a merger of equals or like symbolically a merger. And that is what we try to make happen with Castlight-Jiff. But that is a concern. It’s like something you have to think about when you’re buying another company, when you are trying to combine these companies together is just the impact especially if you are on the acquiring side and you’ve never been in that situation. It’s just have to really be sensitive to what they’re going through because they’re going to lose a lot of their identity. They’ve been putting all this effort into this and so focus about even like the company name, the values and all that, you know, deeply involved in that especially as a startup. And that can be hard to give up even if the company that you’re joining is pretty similar. It’s not quite the same. When I think about the challenges and mostly they fall into people, process and technology. And there’s an overlap, I mean some of these that I’m going to talk about kind of fall into multiple of them. But kind of broadly speaking, you know, so things like culture and values. The leaders talk to their teams about how critical culture is and the values of the company are and then when you then merge with another company if they are not the same I can be, cognitive dissonance goes on like this was so important but now we’re fine merging with this other company. Unfortunately, with Jiff and Castlight is very very similar. There was a lot of, we went through a pretty exhausted process to combine our values and the core it was pretty similar. Other things around people are job titles and compensation and that can be a big big deal for a lot of people when, like if you’re a small startup. In the early days a lot of people they’ll have titles that maybe they wouldn’t have in a larger company. But if you’re running engineering you’re probably not going to have just the title Manager of Engineering even if this is the first time you run an engineering group like a small startup. But when you get acquired by Google, you’re probably not just become VP of Engineering at Google. So that’s a little tough and when people maybe have to take a lower title, but if you don’t do that when they come in then the people already at the company like, “Wow, why is this person a VP?” or something like that. Titles mean a lot and the compensation as well, so with the startup a lot of people got a lot of stack a lot of times and taken a lower salary. And then when you come in to a larger company and you try and level people sometimes that can be a little difficult because they do have this pretty substantial stack compensation. So it will look odd at first like, well their salary is lower but there was a reason it was lower. It was because they got this incentive options and that can really throw up your internal systems. Like internal HR systems that now you’ll have people with very different balances of compensation within the company. The HR side is tough and then for the managers is pretty tough as well.

Carlos: I want to kind of zoom in into a few of this. I think there is another one that is like a bit more technical but let’s divide them between like these are people overall challenges, right, human challenges and this columns is sort of the interaction in human challenges right and there’s going to be some technical challenges. Let’s zoom a little bit more in the human ones before we go into now the technical ones, so how did you solve… I mean there’s a few of those that are kind of which to you is the more interesting one? To me just to put it out there, the one that is kind of the political one. That actually could derail the whole situation. But which has been the one that you think has been the hardest to solve and why?

Robert: I think the people is the hardest, so with technology it is going to impact engineers kind of disproportionate to the rest of the company. But the people issues, that’s the whole company, that reflects everyone. And people like their day to day experience, sometimes people will be, people take different views about say programming languages and frameworks, and API design principles. Some take very strong stances on it or they view themselves as I am a Java developer, Ruby developer or an iOS developer. And then if you get acquired by a company and that language or framework or technology is not a big part of what they do and you kind of see, “Well, if I’m going to stick with this my goal is much more limited now than what you may have received.” And for some people that’s some kind of a deal killer, deal breaker and they will choose to leave the company and maybe ultimately that’s the right thing for them. That’s what they really want to focus on. The entire company can’t change to compensate for exactly what everybody wants to work on. It’s just the reality of kind of larger companies. So that ends up being sort of a people issue because it’s how they think about themselves and what they do and the direction they want to go with their career. Those are pretty tough. If you don’t solve those early on then you’re demoralize and just not very excited about work and then that kind of spreads through the whole company. Sometimes it’s hard to get that information. Like I can just look at our infrastructure and our platform, we’re using Java here, and Ruby here, MySQL or MongoDB. I can look at that and I could see a little bit more easily. I can see where conflicts and problems will occur but trying to understand everybody’s view and what matters most to them. It’s a little harder to have that insight. It takes a big investment into talking to a lot of people and trying to get them to open up and understand what matters to them most about the company that they were part of and how that can still work for them in this company now that they are part of.

Carlos: In your case, what has been the result of this? Have you had to deal with many of these issues? Again, you don’t have to go into details but what’s been the challenge from, have you had to let some of people go? Tell me a little bit about how something like this manifested for you.

Robert: Yeah, so we’ve definitely struggled with a lot of these things and it’s been the case like every merger/acquisition combination that I’ve been part of this comes up. I think it’s not too surprising that would happen. Some challenges that we’ve had and this come up with mergers. I think most mergers, this is the different locations unless you merge with a company that’s like right next door to you or like really close by. If there is any kind of significant distance then it could be harder to get people face to face. And so in our case, for Castlight, the main office is in San Francisco, that remains the headquarters of the company. We also have a small engineering office in Sunny Ville. That is in the Bay Area, if you live in the Bay Area, you would know that San Francisco to Sunny Ville is not a short commute despite the distance being about 35-40 miles but it can take an hour and a half or more to get between them. And then the Jiff office, the main engineering office is in Mountain View, and there are smaller Finance and Sales and other groups in Auckland. So what we ended up doing is combining the Auckland and San Francisco office into San Francisco, and we merged the Sunny Ville office into Mountain View. But it’s not that close and getting face to face time it’s been a big challenge with the area commutes. And then when you’re in a remote office, when you use to fell like, “Oh, it’s the big office”, and I’ve gone through this exact the same experience with other companies. It’s a change that will end up impacting a lot of ways so what we’ve done is. Fortunately, some of the engineering leaders from Castlight live in the South Bay, so it actually ended up being good for them in that they now have a shorter commute and they are spent lot more time. And I drive down Oakland, drive down to Mountain View every week and spent a day there. So we’ve dedicated ourselves to doing that and it’s a great team there. It’s a great product that they are building and so it’s not been there is any kind of hardship to do that. That I would recommend to anybody kind of going through this. We just have to plan for that and upfront is to like really spend a lot of time and not just like the leaders too, so the people doing the work, the day to day work and getting them and going back and forth of both locations as much as possible

Carlos: Just to move on to the other subject which is the technology, one interesting and very interesting story in fact that you kind of mention in our previous call. And again I’m going to probably butcher this whole thing but you said something about at the beginning part of the complexity when thinking of the merger or the acquisition was that you have to let the other company see of what’s behind, or actually the other way, you have to be able to see what’s behind the curtain of the other company. But in the future maybe you could, that will limit you if you didn’t buy into that company. What was that about and how did you deal with that at a high level? I’m curious about that story and how some other people might not know about this like if you’re about to buy a company you have to do your due diligence and now you’re seeing some of the behind the scenes there are some consequences that could probably arise if you don’t buy them, right?

Robert: Yeah, thanks for bringing that up, so when you’re acquiring a company or merging with a company and you start to have these conversations you need to put up proper value on the company because it always comes down to that. What are we going to get out of this merger to offset all the cost of not just the financial cost but the amount of time that we will spend kind of bringing the people and the technology together, that if you were doing that you will be working on your product and you will be adding a lot more features. You have to balance that and get a feel for how much effort, how long will it take to do that, and so you need to ask some pretty detailed questions. And if the company that you’re looking at buying is there is pretty complementary it’s quite possible that there is some overlap and some of the questions you might ask will be pretty detailed and give you some private detailed understanding what they’re doing. And all these are under non-disclosure. But here’s the challenge though, like if you learn things, you learn that non-disclosure agreement and then if you decided, “Ok, well, this is not just going to work out with this other company but there is another similar company.” Now you have information about our competitors of theirs and if you go by this other company it’s like you have to make sure you don’t use that in some way. It violates the non-disclosure agreement. There are times at least you are maybe like, “Maybe we don’t want to know this just yet until we are a little more confident that this is actually going to happen. Because if we know this detailed private information it kind of restricts how we could use it if we then decided well we’re going to built something just like that.” It potentially opens you up to a law suit.

Carlos: That’s crazy because if you find out some other thing kind of deters you from the purchase just knowing that they are using this or building this feature, now you can’t implement it.

Robert: Yeah, and there is a little bit similarities. I mean, it isn’t just about financial property but also with patents. Sometimes lawyers will tell engineers like, “Don’t go look at patent applications” because in some cases like “Ignorance is bliss”. Like if you don’t actually know it then you can’t be accused. Of course you have to prove it that you didn’t read about it. But if they can prove that you did and you are aware of it then it just becomes a bigger challenge for you to say that you develop this idea independently and not through this private conversation.

Carlos: Wow that is a big can of worms. Alright, so this is very interesting we kind of explore the overarching the whole process of buying a company or merging. Now, kind of last question about this specific area and then we’ll have three last questions for you. But the last one before we jump into that, just a little bit of Math, what was your team size, the engineering team size before the acquisition and what is it now?

Robert: So before the acquisition we had about I think 80-90 engineers primarily in San Francisco and then we also have a team of contractors that are in India. I’m actually going there Friday of next week. I’ll be flying over there to spend a week with that team. It’s just a really great team of product development engineers that we work together. We’ve worked together for years. It’s my fourth trip over to meet with them and work really closely with them. So that brings kind of the Castlight Engineering team with them together, that’s about 200 engineers. And then the Jiff engineering team was about 50-60 engineers and there were some contractors in other locations as well but the majority of those engineers are in Mountain View. So a total of a team and it’s about the same size right now, so about 250 engineers.Carlos: That’s really interesting because I’ve experienced and seen this in different of our clients where they are maybe, it’s a different scale of issues or of I want to say challenges is a better word than issues. When you’re 50, when you’re 60, they are completely different but when you’re 250 it’s like a different level and you’re going into thousands, right? That then you start having to have a lot more management overhead. I’m sure that this was something that you’ve gone through like because you have now more engineers there has to be some extra layers of management and process. Is that something a result or a byproduct of the merger.

Robert: Yeah, interesting question. Something we’ve been doing this for about one to two years now. We’ve done quarterly planning for a while but in the last year to two years within Castlight and now with Jiff combined with us we do very detailed quarterly planning. And that might seem strange if you’re doing SCRUM with two weeks like “Why do you this quarterly planning and annual planning?” Of course you need to do that kind of things you to communicate with customers about what you’re building and finance team of course is very interested in knowing like how many people do you need, what capacity? But the big benefit for us is around dependencies between the SCRUM teams because these 250 engineers at this point we’re kind of building one integrated platform. There’s going to be this one product so that is a lot of SCRUM teams, a lot of 250 engineers to be focused on one thing. And so that quarterly planning process allows us to, at least at a higher level, what are the teams doing over this coming quarter and expose that to each other this nice summarize view. So we got it down pretty well now how we do this and we do it in over a couple of weeks but it is really focused for the engineers over just a couple of days and then allow like all the teams to look at the upcoming plans for other teams and then negotiate together about these dependencies. Because it can all fine and good like you build out your feature. You get it done in your sprints but you can’t ship it because other teams by the time you get near the end then you talk the other teams well they have no time to do it. They’ve already planned out their next couple of sprints. So that’s something like over time we’ve had to get a lot more disciplined about kind of this quarterly planning process and mainly focused on this eliminating or at least identifying these dependencies across these teams. That’s the only way we could have scaled up to the level that we are right now.

Carlos: That’s very cool. I like that. Sometimes, to me personally these orchestrating challenges are probably the more interesting one. I myself consider where my experience has been more in the team building and kind of in that team building role. And it’s usually the orchestrating challenges that are the source of problems sometimes more than the problem itself. Like people think, “Oh, I have this problem”, and it’s usually a problem where something in the process is going astray. But it’s a fun challenge but I’m sure for you it’s a very challenging, a challenging challenge with 250 people. Alright, I have three last questions for you. This is part of question one, but remind me what was the date that you were notified of or do you learn of this merger and acquisition is happening, or they were thinking about it. When was the first time you heard of this?

Robert: So I got pulled into the technical due diligence I think around the end of November last year, so in 2016. Spend a bunch of time on it throughout all of December and then the acquisition was announced in January and we merged together as one company in the following April. So this is really quick, of course the SSC, they had very few questions for us and there was basically none. There is kind of no push back. It was the relatively small overlap, very complementary and very competitive areas that we’re in both very competitive markets. And so the merger actually moved through quite quick form the point that I first got involved in it.

Carlos: So the question is, it’s been a year now, so what would you go back and tell yourself right before this process started. What’s one thing you’ve learned through the process that you wish you would have known in the beginning?

Robert: You always tell yourself, you know, over communicate but you really you can’t do that too much. I know it’s like an over worn cliché but it is true and it is tough to do. Early on you just want to start making progress and you want to get things working together and you’ve got kind of your daily stuff. You’ve been thinking about what you want your teams to do kind of before you can find out about this over like the next 6 months and so you made all these plans and you still want to make progress on those but it’s really hard to kind of keep stepping back from that frequently like really having these setbacks, have I made sure that the teams that we’re bringing in and combining with us that they really understand the direction we want to go in because like the teams that you currently work with it’s easy to forget that well you’ve been working together for a while, so you all have this past history. And with these other people you want to treat everybody the same but it’s not the same. They don’t have that back history and so you need to talk them a lot of things that it’s easy to take for granted what they might know. Seems obvious but when you’re in the heat of the battle of making this happen and getting things out the door and you have all these customer commitments. It is hard to remember day to day that you need to do that.

Carlos: Interesting. Alright, so do you have any resources or any, this is probably one of the best question to ask because I know you have this experience from the past. But I’m just curious, let’s say somebody wants to read a little but more about some of the stuff we talked about today. Do you have any resources? You can send me some later. I’d be happy to share them on the episode but if you have any books or any resources you can point us to?

Robert: I have to think about that and I’ll send you something. But I would say that things that I found useful in the past like Eric Ries “Lean Startup”, that was a pretty interesting read for me long time ago and then again interesting books lately I would say one that I’m really enjoying right now, it’s a little bit related to this but it’s kind of a lose tie, but is Machine, Platform, Crowd: Harnessing Our Digital Future by Andy McAfee and Erik Brynjolfsson. It’s a really good book. It talks about kind of machine learning and maybe this is the middle part like building a platform and that is because kind of specifically at least what Castlight-Jiff coming together and try to do is built this health benefits platform like how do you that? And there is some really interesting insights in there for me about how to build a platform that other partners want to fit in to. And the Jiff team had done I think a really good job on this in the past and so I learned a lot. If that’s kind of what you’re trying to accomplish through bringing a couple of companies together, develop this bigger platform, I would definitely recommend reading Machine, Platform, Crowd.

Carlos: Alright, also how and this is basically the last question, how can people find you, find your work and if you guys are hiring. What’s one way to get your attention if they want to apply and get hired by you?

Robert: Sure, you can definitely find me on LinkedIn, if you search for Robert Stewart and Castlight, that will find me. I’m also on Twitter @wombatnation. It’s a long reason why wombatnation. I’m not actually from Australia but I have a friend from Australia who like the name and so that’s what I am, and in a lot of places that will be my alias or handle. We do, we’re definitely hiring. We have about 40 or so positions open I think within the company, maybe a bit more than that. Within engineering it’s around 12 or 15 positions that I think we have opened right now in San Francisco and Mountain View. And so at jobs.castlighthealth.com you can find it there. But you can also, you are welcome to reach out to me and I can tell you more about positions. Anybody out there who would be interested in working at Castlight and making a difference in people’s lives to better understand how they get healthcare and how they stay healthy.

Carlos: So a bonus answers for everybody who is listening to this point. It’s been about 40 something minutes. If you are listening to this now you’re going to get an insight to how to get Robert’s attention. So Robert, what’s one way does somebody make your attention if they are applying? What’s the one thing you’re looking for? One thing that we look for a lot and it matters to me. I mean, the kind of work that we do. The mission that we have at Castlight is incredibly important to me and there are a lot of personal reasons for that and then social reasons for that. So people who have done work or suits some strong interest in that, and if it’s a project that you’ve worked for that’s maybe associated with Code for America or some other organization like that, whether it’s a GitHub repo or some open source code or project that you have deployed somewhere, that would definitely get my attention. I have done some of that work myself and the people that I’ve worked with in the government and healthcare space kind of building things to make better for a lot of people. They are some of the most motivating, interesting people that I worked with in that.

Carlos: Ok, that’s an excellent answer. I’m hoping people like that there is this bonus. I think this is an interesting one. Well, now you guys know that’s one way to get Robert’s attention. I actually have been looking into Code for America for a while but I haven’t volunteered. I’ve been interested in it. I think it’s something that we all should be doing a bit more. How can we build more technology to help one another like the society, so why not? Alright, well Robert, thank you so much once again for being in the show sharing your experiences with us with this whole merger. Not a lot of people have experience with this so listening to your story firsthand is really interesting, so thank you so much for coming.

Robert: Yeah, thank you so much, Carlos. It’s an honor to be on your podcast. I’ve been really looking forward to it for quite a while, and fantastic set of questions so I hope it provides some value to people and then that the information be useful to them.

Carlos: Thank you so much Robert and I hope to meet you out in San Francisco soon once more.

November 22, 2017 / Comments Off on Mike Jackson with Pearson: Turning a Textbook Company Into a Technology Powerhouse

Show Details

Mike Jackson shares his insight on what it takes to transform a textbook company into a technology powerhouse.

As the world of education continues to evolve alongside technology, Pearson, the world’s largest textbook company, is looking above and beyond readable versions of textbooks posted online. What Mike strives for as the VP of Engineering is creating an integrated learning experience, which allows students to get the most out of their education.

Listen in to find out more about what Mike has in store for Pearson.

Show Transcript

Carlos: Mr. Michael Jackson, thank you for coming on the, how are you doing today?

Mike: Thanks Carlos, I’m doing great.

Carlos: Well, I’ve been waiting to have you on the show for a little bit now. I’m really excited because I think you have a particular view because you are in a company that is in education, so there is a lot to learn from that angle. I’m really excited to have you on the show.

Mike: Yeah, it’s great to be here. Thank you very much for including me in this.

Carlos: Alright, so Mike tell me a little bit about your background and how did you end up in software at Pearson.

Mike: You know, I’m one of those rare people who early in their life like in my Junior High days I was enamoured with technology, and software and what was happening in the world back then in the late 70’s early 80’s, so I’m dating myself here a little bit. There was a lot happening. I mean, software had started to really become something that was changing the world. It was very early and it’s kind of creation of lifecycle of software. I thought that would be a good career opportunity for me too so I started preparing myself in high school, and when I went to university I picked a major and I stuck with my major. Back then it was MIS, so there was a business aspect but primarily building software around business and I never looked back. I never looked back a bit.

Carlos: What about software that kind of intrigue you because even within technology and software there are so many paths that we can take. You can get into IT, you can get into data science. There are so many options. What about engineering made you?

Mike: Yeah, and that’s one of the great things about technology path is you can find your way through it. You don’t have to decide upfront. You get to decide as you move through your career, company to company. For me I got lost in software. And when I say that it’s like when I was writing my first programs and going into labs I felt really good about my decision when I was in a programming class and I went into the lab about 3:00 in the afternoon. I was working on a program and I looked and just about done, it was almost 3:00 in the morning. It felt like about 2 hours max and it had been 12. I knew if something can capture me like that I can just really enjoy it. And then as I started on my career it was always about writing software and then working for companies that build products and build software products as a solution. I worked for, early days, companies like United Airlines and built travel systems and I moved in to ERP, and I worked for J.D. Edwards, people soft in Oracle, and work through different options there. That’s the best of all the worlds where you’re profit centered and you’re building software that sold. And then I had an opportunity to move over to Pearson. And frankly, the reason I left Oracle and came over to Pearson was an opportunity to get to the VP level, to get to a level where I was able to have a bigger impact and take all my experience around building software in a software company and bring it into the education space.

Carlos: Kind of comes to mind is does the job make you a software engineer or does being a software engineer gets you the job? Does that make sense, because in times basically the job pushes you in a certain path? What was it for you? Was it your passion for software or was it the situation you are in kind of pushed you to that kind of career?

Mike: You know, when I first started the jobs I had started me down that path. And I’d say I got lucky from that perspective and that my degree was very hands on. I did an internship at the university and every job that I interviewed for college was working for a company building software. And then once I got to J.D. Edwards and that was the thing that really, that was like my rocket ship if you will. It was the late 90’s. There’s a lot going on around the Y2K. ERP was just coming into its own as a massively growing company. I learned there that what I liked to do is build that software solution. And through acquisitions I was asked to do other things. I have roles where I helped engage with customers and bring them into the mix with engineering teams. I’ve had roles where I helped managed the internal infrastructure that was used within the company. I did a lot on vendor management and dealing with global vendors around using global teams across the world. A lot of all those things are interesting. I always came back to what I love was building software. If you let your career happen to you, you can go on any path. But you do get a say where your career goes. And so really as you find what you love and I’ve been telling my kids this too, “Find the thing that you love that the world wants to pay you for.” And for me the thing that I feel I make the biggest difference in is building software and helping teams figure out how to do that and do that well.

Carlos: Going a little bit more in-depth again your progression and all that. For those who don’t know what Pearson is, what is Pearson, what does it do, how does it makes its money?

Mike: Pearson is, I didn’t know about Pearson when I started and I hadn’t heard about it and all that. Pearson traditionally, the main part of their business was as a textbook company. It’s actually statistically impossible to graduate from college without purchasing a Pearson textbook, so I would like to thank all the listeners for that for getting this company started. Now, Pearson is really in a major transformation from print to digital. The things that I do now help to bring education alive for students across the world through using software. Software help them do their homework, help them study and learn, take tests and all those fun things. Pearson is the world’s largest education company actually. What I like about it now too is if you want to make a difference in education there is no better company to be at than Pearson. We have the largest scale, breadth and ability to affect learning and really change people’s lives through learning. Again, it’s a large company and just a quick question. How many people at Pearson?

Mike: 35,000 employees.

Carlos: 35,000 employees. Alright, so it’s a massive company. Can you give us a little bit of a census to where you fit in the company? What do you do as a VP of Software Engineering? What is your mission and how do you fit in the big scheme.

Mike: Yeah, there are several divisions in the company. I work in the technology organization. I’m focused primarily on higher ed products, though a lot of our products are also used in schools especially at the high school level for AP classes etc. But I fit in the division that delivers, in fact we’re the biggest digital revenue stream that Pearson has. I report to the CTO of Global Product Technology. He reports to the CIO, and he is a COO/CIO. What’s wonderful about this position is I get to operate at a level where I can have a big impact on teaching and learning at scale across so many different areas. Most of the products that I work on are things that are online products. Things that are used, what we say practice based learning for Math. For example MathXL, and MyMathLab is really the biggest digital product in the world. We have about 10 million enrollments per year and across that platform and other disciplines. We affect 20-30 million learners a year. We have Science products in the mastering series. We have products to learn how to use the Office Suite. We call those MyITLab. We have world languages. MySpanishLab is a product that’s fairly heavily used. And so these products are used primarily in the classroom and outside the classroom both. Some models, some institutions are using them in a model where they used those in a lab. They used during class sometimes and for taking exams. And then there is a lot of exercises, and homework and practice where students work separately and independently at home. These products are really in the mix of helping accelerate learning and driving much better outcomes for learners.

Carlos: Can you tell me a little bit about, I mean, you mentioned products so how does product management function. Where does your job as a VP come into play when you’re deciding let’s say what project to work on. How does that cycle kind of function?

Mike: In Pearson, the product management comes out of our Global Product Organization, and there is a president of that organization that partners with us in technology organization to deliver solutions to the market. Their job is to really help us to find that what, where do we invest, where do we spend our time, where is the value in the market, where should we direct our investments? My role as a VP is to contribute to that as far as the delivery of technology and how we can optimize our solutions, and so identifying areas where we should invest and a lot of this from our perspective when you talk about our roadmap planning and our planning that we do along the year is to help the business team understand what we need to invest in the technology to sustain the learning that needs to happen.

Carlos: How does things like choosing a technology come into play when similarly related to a product so how does the technology pick? Let’s say, is there like an R&D approach to it? How do you guys upgrade to the next frameworks? How are things like technical debt prioritize over feature work? Does that make sense?

Mike: Oh yeah, definitely. From a broad technology perspective, you know, we’ve grown historically through both building and buying products so our technology stack can be quite varied. But as we move forward and we see the cloud becoming such a major transformative technology as you see open source technology and how that’s playing. We’ve really been able to pick those standards. We have an architecture team, enterprise architecture team now that is helping us guide where we build, where we buy, and how we are building our learning platforms as we move forward. You know, managing those decisions is something that and across our organization we continually evolve, continue to experiment. If you’ve heard of bimodal IT which is there are some technologies and part of our business need to be stable. They are out there generating large amounts of revenue and delivering a lot of value in the market are things that we need to be a little more careful with. But then we have kind of like, mode two technologies that are places where we experiment and try those new technologies and spin them up and get those to start scaling and performing to meet our needs and being new value. You see, you mentioned data analytics earlier and this is an area where Pearson has really identified a great opportunity. For us we want to deliver better outcomes for our learners. The best way to do that is to really, you know, using analytics and understand what’s going on inside of a course. Understand where students are spending their time, where they are struggling, so we track that and stuff within our software. We have an ecosystem that we are feeding all of that data into that we can provide information back to the learner and back to the instructor and even the institution on acceptance of instructors and which courses and which materials are working best for them. That’s a very cool thing and in fact just recently we announced the partnership with IBM. We are exploring using IBM Watson within our products and by next spring we’re going to have 10 titles with two chapters each, and we are starting to experiment with how Watson can help us. And we’ve really got to kind of three places where we’re considering as you’re working through course materials where you could ask Watson a question, “Wait, I don’t understand this. Help me.” And Watson will ask you some questions back. Then when you’re doing quizzes, if you’re struggling with the quiz, Watson will interject and say, “Hey, you seem to be struggling where do you need some help?” And then finally as you’re preparing for a test based on all the inputs from those things we also have a hit map that says, “You struggle on these topics. Maybe you should study this area”, and recommend study guides and video or places for you to review those materials before you take the final exam to help you prepare for that. Our hypothesis is we have to figure out what combination of those things is most helpful and so we are doing a lot of experimenting around that. That whole process, and this is an initiative that’s really got a lot of interest both. It’s basically an online tutor if you will that helps you in your learning.

Carlos: I wish I had that when I was in school. By the way it sounds cool.

Mike: How cool would that be, huh?

Carlos: How cool would that be? How many Cs could have been Bs in my high school track?

Mike: Or Bs As, or A- A+.

Carlos: Yeah. I mean, probably a little unrelated but there somewhat of a feeling that I’ve seen across the years that people blame teachers for sometimes too many things. In some cases fairly, and some cases unfairly. I think the unfair part is that being an educator has not evolved as much as say technology has. You as the professor, you’re somewhat the same. You could be teaching a class today somewhat similarly than you taught it 20 years ago.

Mike: Or 100 years ago.

Carlos: Or 100 years ago. I hope that this type of technology gets into the classroom and into higher educations. Again, I don’t think professors think about it. It’s not their fault that that’s how it’s done. They are taught a certain method because they were taught that way as well. And I think by leveraging this sort of technologies is going to be better education for everybody.

Mike: Yeah, and you know what’s really in your spot on and so there’s been a lot of discussions about how technology plays and how instructors can use it. One of the notions in that you can use technology is to almost flip the classroom. You go from the notion of the sage on the stage where you spent all the time in a classroom and explain concepts. You flip that so that the student can absorb material, and watch videos and read material outside of the classroom, do some exercise. And then in the classroom, now you are actually working through really mastering those techniques. Our programs like MathXL, Mastering, these products are extremely configurable so that the instructor can customize what’s presented to the learner, when, what kind of study guides or integrations with third party products that help visualization and help with learning, and the teacher can customize that. They can change the order, they can change which concepts are presented and when. They can change how it’s created, so all of these things are actually moving learning forward in a significant way.

Carlos: Now, let me switch the coin a little bit. So how does a VP of Software Engineering stay educated with the latest trends, with the latest everything, right? Again, you’re a busy guy. You are working in this massive company and you’re up in the ladder. You work close to a CIO level again through people that you report to but you’re up there essentially. How do you stay on top of the new technologies and experiment with trends. How do you do that in your spare time? And is that important to you career?

Mike: Oh yeah. You know, Pearson has a tagline it says, “Always learning” and I’m always learning. I spent time in the last couple of years I’ve been actually focusing more on. I mean, it’s a combination of technology and leadership. I read a lot of books. I’ve had an opportunity, and had some great training here at Pearson’s Assessments that have helped me to grow as a leader. From the technology perspective, just the access to information now is amazing. You can get what you need. I spend time during the day, I spend time at night, I spend time on weekends in googling things looking at different sites, going to resources like Gartner or other practices. You know, folks who are experts in the technology and then working on dev ops recently, right. Looking at people who are out there practicing it and learning it and what you can learn from them. What are the different dev ops topologies and what would fit us. But each of these things I’m working with a team, and sometimes I get to learn on the job. And sometimes you need to spend a little bit of time learning it on your own too. I participate in other. I’ve been a part of Agile special interest group with engineering leaders and talking with other leaders about challenges and I have gone to a leadership summit, technology leadership summit. In fact, I just went to one recently. It was very hands on and got to meet people both in the industry who are leaders. I got to meet Jeff Sutherland and Tom and Mary Poppendieck and Scott Atwood. Stack overflow, the creator of Stack Overflow was there. Got to meet these people and talk with them, and talk with other leaders about challenges in developing and building software in organizations. And you learn from each other.

Carlos: Just now that you talk about challenges. I just want to kind of interject and add an extra question as you’re answering this one. What’s the biggest leadership challenge you’re facing. It seems to be a core area of focus what about leadership? Why is it important to you? Tell me about your opinion and what kind of makes your blood boil about some other people that do leadership the wrong way and how is it supposed to be done? Teach us a little bit here.

Mike: That’s a big question. So for me, I think the first one, the things I’ve really learned is to be a really good leader you need to understand yourself, you own strengths and your own weaknesses. You need to understand the environment that you’re working in and you need to really collaborate and work together across an organization. I think the biggest challenge is getting everybody rowing in the same direction. Across the whole leadership, get everyone understanding where you’re building products for example. It’s different than operating package software and what are those differences and how do you really implement agile and how do you implement dev ops and how are you deploying to the cloud and how are you using the cloud. And it continually changes. It’s one of the beauties of our industry that makes it, fun and hard. Like the hard part is that it’s always changing. You have to keep learning that’s the fun part too, right? So for me, I strive to be a servant leader but understanding where my own strengths are has been probably the biggest thing where you learn where you can possibly influence people and move the organization and move the teams forward bringing positivity to the table and energy that teams feed off of and making it clear to them, what good is. And driving the disciplines within your organization that helped drive that creation of that high quality software. You’re very predictable, you can deliver, meet our stakeholders, meet all of our product owners and stakeholders needs. And when that part it gets the customer the learner in our case to have a very positive experience and keeping that system running all the time and running at scale. So for me, it’s a big challenge around, it’s an ongoing challenge around the people that you’re working with and then you get changes in people and direction and technology and that creates this kind of dynamic environment where you need to be adaptive. You need to be able to understand the whole ecosystem, everything that’s going around you and help the team understand what they need to focus on to really deliver and be successful.

Carlos: Aside of leadership as a theme, what else are you excited about at Pearson. What’s in the future? Like, what does 2017 look like and what’s something there that kind of you’re really looking forward to?

Mike: Pearson is in the middle of a big transformation, right? From focusing on print we basically started selling textbooks, and then those CDs that were in the back of the textbooks kind of became an online access to that which now the whole thing is online. And then changing it from being, it’s being inputted into the learning process to being a part of it, and so we’re building. In the past, Pearson grew through acquisition and we accumulated assets to help us meet those objectives. Now we know what good is and we’re building a global learning platform and we’re bringing all of that together and driving the innovation in learning that we’re right for. And you mentioned earlier, learning hasn’t change the whole lot. But every learner has a device, multiple device and has access to information and making that learning process better for people providing new technologies and analytics, and understanding of how the learning is working, and adding value and helping large entities and small alike both be able to take these tools and implement them to the benefit of the learner, and instructor and make that a better process so. We still have a couple of years left in this transformation I would say. It’s not easy any time you’re going through major shift it requires a lot of commitment across the organization to that change. You know, 2017 is just our next step and we’re going to keep moving down that path.

Carlos: As part of that transformation, I’m going to ask this. We are a front-end engineering shop so Angular and React are always in our vocabulary and all their front-end frameworks. Angular or React, what other options? What’s in store for the future for you guys?

Mike: We’ve been on a path improving and implementing front-end technologies here as well. We did a lot with Angular. Angular was our standard, starting about 2-3 years ago for everything newly built. Over the last years we still do both, we do Angular but we have shifted towards React a bit. We’re developing some of our own components that we can implement within that ecosystem. I don’t know that there is a winner between Angular and React or if there’s need to be. But for us I think we’re a little bit more going towards the React side for us here.

Carlos: Yeah, it makes a lot of sense for many companies. It’s a little bit of what we see. A lot of the times it’s subjective, the more tools that we have the better. The more competition, it’s sort of in the free market that we have a lot of competition. There’s better products out there so, I think that the more competition there is in the front-end and there is Javascript world, the better the frameworks we’re going to have, the better tools we’re going to have.

Mike: Exactly. And we learned from some lessons. We had Dojo in here. We had issues and fix us to do. We had Dojo and major framework upgrade that requires total rewrites. We used a lot of JQuery and it provided some value and helped us with responsive products and responsive applications. But I think we’ve got a new place with Angular and React.

Carlos: Alright Mike, this has been an amazing interview but I have three last questions for you and I may actually squeeze a fourth. These are more geared towards you. What advice would you give your younger and less experienced self? You ran into yourself a couple of years earlier, what would you tell yourself?

Mike: I think, as I look back through my career, it’s really important to true to yourself. Find that thing that you love and stick to it and do it. I think for me, I am a very intense individual and driven, and stepping back and make sure I always have keep perspective. As I have gone through my career there were some times of pretty immense stress. Really what I learned over time, was to just keep perspective on what things really meant. You know, a lot of times when you’re going through those challenges and there is no way you’re going to solve a problem, and no way you’re going to get through something. You know, if you step back and you say, “Who else could do this any better?” in the whole scheme of things. How important is this? Let’s just do the best we can and go into the next thing and keep moving it. I’ve tried to evolve as a human too, and as a person, as a leader, as a technologist, and continue investing in yourself over time. So to me, I think that perspective is a big thing.

Carlos: I love that, that how perspective feeds our inner peace is something that we need to keep in mind because the world is not going to end, right? Well, hopefully it doesn’t. But I say it in the sense of like because we do something it’s not going to end. By the way, I was just laughing because today, we’re recording this on Election Day so we’re hopeful the world won’t end. So what’s a book that you would recommend on some of these things we discuss today? Just to bring some of the topics we talked about leadership, we talked about education and technology. It could be also any books that you feel that have made in impact in your life.

Mike: Wow, ok. I’m going to give you several leadership books because I think at a VP level as folks want to come up through management, leading technology is the trick. And so I mentioned earlier understanding your strengths was really important and there is a very good set of tools Strength based leadership is a book that I read and there’s an assessment that you can do and then you can actually know where your strengths lie. And when you know where your strengths lie and you know where other people’s strengths lie, you know how you can use each other to get to good. So I think Strength Based Leadership has been something that has helped me grow as a leader recently. If I was a new leader I’d want to other books. The first book for a manager to read and I think helps you to understand servant leadership, situational leadership, a lot of things. It’s kind of a compilation of a lot of different writers along with Ken Blanchard, and he wrote one called “Leading at a Higher Level”. It’s kind of almost like a primer for someone who really getting into leadership. And then one that I really like, Five Levels of Leadership and it’s by John C. Maxwell, is awesome. A little bit more of the technology band, The Phoenix Project is a good one.

Carlos: Oh, I love that book.

Mike: Yeah, that’s a great book to help people understand dev ops and how that can make a difference. And then the final thing, I’m just going to give you a little insider into myself like when I talk about perspective and gaining perceptive. There is a little book I read every day, it’s called Jesus Calling. And that’s a spiritual broadcast in it, proposing I think. But it helps me keep myself grounded of where I am, so I read Jesus Calling by Susan Young. Here’s an app for that so I actually have the app and I use the app. But that helps me keep my perspective everyday in my life so there are my books for today.

Carlos: I love those recommendations and we’ll have those in the show notes with links so you can check them out. Alright, now the obligatory question Michael Jackson do you get a lot of, what’s the story behind that, and I say not the story behind the name. But tell me a couple of stories. I’m sure you have a couple that are interesting.

Mike: It’s funny you get a name like this. So I’m only like 4 years younger than the Michael Jackson, so my parents gave me a name and they didn’t know what they were doing at that time. But by the time I was 6 years old, it became pretty obvious it was going to be something. I’ll give you two stories. When I get my first check book, from the bank they gave it to me and they said, “Michael Jackson.” And I couldn’t write a check without getting a hard time. And so I had to learn really quick and then even in the phonebook and these are back in the days, I got a lot of prank phone calls so I had to go to Mike Jackson instead of Michael to avoid those things. And the last funny one was I actually was flying on the day that Michael Jackson passed away and they cancelled my reservation. I think they think I don’t need it anymore.

Carlos: That sucks.

Mike: Yeah. Having a name like this, it’s a good icebreaker. We had a lot of talents with some idiosyncrasy as well.

Carlos: And you get to tell stories about it.

Mike: Yeah. We can usually make some fun with it. Alright, well now, and for everybody who is listening to the show we had Michael Jackson first on this podcast.

Carlos: If you guys are hiring, and this is a two part question, how can people jobs at Pearson and how can they apply? How can people actually get notice to work at Pearson? Aside of that how can they get in touch with you and find your work if they have any questions?

Mike: That’s right. Well, Pearson has on their website, so pearson.com/careers or pearson.com/jobs. I’d have to go and take a look. But right on our website we publish all the jobs that we’re putting out there and we have locations all across the U.S., London and other locations as well. You know, that’s the best way to find the opportunities. How do you get notice? For me, if anyone sends me their information I can help guide things through the process and make sure people are aware. I think anytime you apply for a position, making sure that people can see how you’re experience that you have in the past can really help you deliver for them in the future is really a good key. So having a good cover letter, good preamble, that talks about that helps people get noticed. And then finding me personally, I’m on LinkedIn and it’s probably the best way.

Carlos: Alright. Well, Mike, man I want to thank you so much for taking the time to come on the show. I know we had to do the pre interview and now the interview so it took a chunk of your day from again this 30,000 people company so I appreciate the time and joining us. It was very fun.

Mike: Thank you so much, Carlos. It has been a great experience. I appreciate it.

Carlos: Thank you so much Mike and I look forward to meeting you soon.

November 6, 2017 / Comments Off on Claire Hough with Udemy: Employee Diversity In Tech

Show Details

Claire Hough entered the tech world right out of college, and is now the Head of Software Engineering for Udemy, a learning platform bringing teachers and students together.

In the work place she has witnessed a huge decline of women engineers, but shares it was not always this way.

Listen further to discover Claire’s advice on how implementing diversity in the workplace is an essential part of her success, and the success of the future.

Books

Leadership is an Art by Max DePree

Grit by Angela Duckworth

Brene Brown

Managing Bias by Facebook

Show Transcript

Carlos: Claire, thank you so much for coming on the show. How are you doing today?

Claire: I’m pretty fine. Thank you!

Carlos: Alright, so it was a couple of months since we last spoke. How was the rest of the last few months have been on your end?

Claire: It’s been hectic, very busy, but everything is going well so I’m happy to be where I am; looking forward to the holidays.

Carlos: Alright. Yeah, it’s that time of the year, absolutely. Alright, so Claire, I think one of the interesting questions I try to start with is tell me a little bit about your background and how did you end up in software?

Claire: Let’s see my background, it’s all software but I didn’t intend to end up in software. I have a degree in Industrial Engineering in Operations Research. I specialized in manufacturing systems optimization and also transportation system so with the master’s degree in operations research. I did some consulting and transportation and manufacturing. So coming out of school, I was looking for a position that will allow me to work with companies optimizing either manufacturing or transportation, so I ended up at this company. It was a semi conductor automation software company. So immediately joining that company I became a software engineer. I had taken some programming classes in school, so it wasn’t too hard for me to pick up software programming 100% of the time but I certainly didn’t expect that that was what I was going to do. And then I went back to school to take some additional courses afterwards.

Carlos: So, the funny thing is that some of the people who have this, let’s say engineering background are able to get alot of this software engineering stuff much faster than those who haven’t built those mental models, and I think that’s really an advantage. So, again what led into this path, kind of through engineering. What’s really interesting now is, you are teaching other people now, right? Even if indirectly, you are building a platform that allows other people, other creators to teach each other different skills. So, just for the few who don’t know what UDemy is and what you do there, can you give us a little background on Udemy and your role?

Claire: We’re an e-learning platform where we bring teachers and students together, so we allowed anyone who has a passion to teach to come on to our platform and become an online instructor and teach what they want to teach, like where they have expertise. And then we bring in students to find those courses and learn from them, so it’s a really enabling platform for both instructors and students. We have over 40,000 courses taught like by 20,000 instructors, and we have students in 196 countries. I mean it’s a very exciting platform because we really believed in students finding that teacher to learn from. So our mission is that anyone can learn anything on our platform.

Carlos: What is your role in the company? Last time we spoke you were VP of Engineering.

Claire: Yes, I’m the head of Engineering for Udemy. I joined the company when we were only 30 people. I joined Udemy because at this point in my career I really wanted to work on a software system that really makes a difference in people’s lives. Udemy’s mission of like making education accessible and affordable really spoke to me. So when I met with Eren Bali who is our founder, who grew up in a very remote part of Turkey and he had privilege of going to a very good university and upon graduating he wanted to make education available to people who otherwise would not have that access to education. You know, when I met Eren I think we really connected at that level. Like he had a mission and I wanted to be part of it. So I came on board three and a half years ago. As the head of engineering I lead engineering obviously so engineering’s job is to provide that platform that enable instructors and students and make sure that our software, our platform is accessible all over the world and it is scalable for millions of students who want to take courses on our platform.

Carlos: One of the subjects that we took shape in our first conversation was your view of an employee development and people management. Can you give us a little bit of your philosophy, in terms of, let’s say what’s your view on developing skills and know how within your team as part of their career?

Claire: Yeah, you know, I believe any capable engineers can learn whatever challenge that we bring forth. We as engineers are solving problems and we’re building software that solves those problems, so I very much want our engineers to really think end to end about the solutions that we’re providing and how we are providing this amazing user experience or amazingly scalable platform that people don’t have to really think about when they are using it. Number one, we try to bring in people who are very motivated, who are behind our mission. And you know, obviously we hire at different levels. So I believe in forming a team that has differences of skills and differences of strength at different levels. That way, people learn from each other and that lot of senior engineers have an opportunity to mentor junior engineers and junior engineers have an opportunity to learn. We have a career ladder and we talked about like how you can develop skills that you need to get to the next level if that’s what they want. But we also have a parallel career path of being leaders of people, so beyond Senior Staff Engineer level which is the Level 4 Engineer, there is a dual career path. They can take more of a leadership, people management path or they can continue on in their technical career path and become principal engineers, architects, principal architects etcetera. On the management path they can start to manage a small team and then they can maybe manage multiple teams as they become directors, and senior directors and VPs. We really encouraged people to look at what they enjoyed doing the most and help them developed skills in that direction.

Carlos: Clearly soft skills are kind of a buzzword, what’s your view on soft skills and how you train engineers on that sort of soft skills area?

Claire: I think soft skills are very much part of skills that we need to develop as engineers, right? We have to be able to work with our peers and work with our business partners, product managers and be able to explain why we are doing what we are doing and how we approach solving these problems. So soft skills I would say communication skills, collaboration skills, ability to work with different types of people. I think by giving our engineers opportunities and also giving them very direct feedback as they develop those skills, I think that we are constantly challenging each other to build soft skills but all other skills as well whether it’s a design skills or testing skills or developing high quality coding skills, all those skill. I think through feedback I believe that we try to develop our engineers to have very well rounded skill set.

Carlos: And what are the, this is a sensitive topic but I wanted to get your input on this so with the sort of migrant crisis all over the world and the topic of culture inclusion is becoming more real, not only cultural level but making sure that we have diversity in the workplace where culture of female engineers or again multi cultural. Do you have any experience on this topic and how do you approach this as a head of engineer in an organization of the size of Udemy?

Claire: Yeah, we actually have very diverse group of people working at Udemy, and also in engineering. When I first came on board and actually on board at Udemy and took over the engineering and product and design teams I actually inherited 100% engineers from Turkey which I actually did not know when I took the job, and actually I didn’t know two weeks into my job, and one day a couple of my engineers were speaking in Turkish to each other so I turn to them and say, “Oh, do you all speak Turkish?” And they all laugh at me because it was so obvious to them that it was 100% team was made of people from Turkey because our founders were from Turkey. So for me, you know, I have been around the block a few times in Silicon Valley so I worked with lot of people from a lot of different backgrounds and countries, so I don’t even think about it. I had a team in India, I now have a team in Dublin, I have a team in Ankara, you know, I work with teams from other parts of the country as well. I don’t think about it but I do think that we have to be mindful of that creating that diverse work environment where everybody feels included and everybody feels that it’s a safe environment to be who they are because I think it is that diversity that they bring to the table that really strengthens us. I think it’s very rewarding to learn other people’s culture, and I think it makes a very enriching work environment when you have people from different backgrounds who are freely and willing to share their backgrounds and values and whatever beliefs that they bring to the table. When we all respect each other for the diversity that they bring to the table it just creates a much richer and healthier work environment. And I have to say that it’s not always the case that people are that aware and sensitive and inclusive and be very conscious of creating this kind of work environment. I think people have to be reminded when they don’t know or they are not aware. I think most people do want to work in a safe work environment. You know, even if you are representing majority, I think when they think about the times when they might have been excluded for one reason or another I think they will understand what it feels like to be minority. I have engineers from minority backgrounds and for them it’s extra effort for them to feel like they’re fitting in. It’s an environment that people would accept them for who they are because it doesn’t come naturally to them for being a minority. The way I approach it is number one awareness, that everybody is aware that we all have biases, that we all come from different backgrounds therefore we have these biases and what’s important is being able to recognize those biases and combat it, have open mind about how we would work with or include people coming from different backgrounds. So we do managing bias training, we watch a video from Facebook, we discuss it and we also openly talk about biases that exist in the workplace especially in tech. We also watch this film called “Debugging the Gender Gap”. It is more about why this big gender gap exist in tech today and getting people to really understand and be aware that these things exist, and that we could create a much better work environment if we combat those biases. But it’s not a one-time training thing. I think it’s one of those things that you have to constantly talk about. You have to give each other feedback when somebody is not behaving inappropriately and whether it’s unconsciously or consciously. We have this thing called, like giving feedback is kind of giving gifts so when somebody is willing to give you feedback let’s take it as a gift that we’re getting.

Carlos: I think this is an extremely interesting and important topic. So kind of what interests me is, solving the problem of measuring this, how do you measure the way you are solving this as a problem. First you have to see this as a problem to solve this. So, I want to get an idea of your thoughts on this, what are some measure that could lead us to get an idea of where we are.

Claire: I think number one metrics how well are you doing in your building a very diverse team, right, so it is like you have to look at your gender diversity. What percentage of your work force is male or female? What percentage of your work place is people coming from minority backgrounds? What percentage of your work force is people with different sexual orientation or representing some minority. If you’ve actually achieved having that gender balance or having more minorities represented in your workplace then you’re succeeding otherwise you’re not succeeding. But the other measure would be people who are in the company who come from underrepresented groups, how do they feel about the work environment. Do they feel it’s a safe work environment? Do they feel included all the time or they feel like there is a lot of biases that exist and they are constantly dealing with stereotype threat. I think doing surveys and having a very open work environment where people can openly talk about these issues is super important, and you have to measure it in ways that makes sense, by numbers and also by anonymous surveys of how people feel.

Carlos: So given that you have experience in some of these different companies, I’m really interested in knowing your view on this, but I see a lot of this as a trend, but across an industry where people are growing into a role or being hired for a role. What’s your vision on this?

Claire: Yeah, think so. Well, let me see if I can answer this right. I’ve always been a small company person, and I think the biggest company that I’ve worked for was about 2,400, so that’s the extent of the size that I can comment on. You know, I’ve always been a small company person because I like the impact that you could have in a small company and I like the innovation and nimble stages of startups. I sort of sought smaller startups all my career and I’ve enjoyed a lot of the companies that I’ve worked at. I think if I look at tech, how did people evolved; when I first start my career there were more women actually in Computer Science. There were more women programmers. There were more women in the workplace. I think over time we have less women and I think there we’re some cultural bias or there were less welcoming stages of our industry where women won’t as welcome then to tech. I think if you look at even number of women graduating with Computer Science degree have like diminished from late 80’s. I think the tech has gone through some stages of where we were not addressing the issues of diversity. And when I look at lot of startups where there is this lot of competitive sort of in your face culture and that is not a culture that is really attractive to a lot of women engineers, and as a result I think more women leave tech at a faster rate than men. I have seen people change? Yes, and I think there were times in my career where it was very difficult to work in an environment where a lot of young men thought that being in your face and being very critical of each other that was cool. I think now there is more awareness and I think everybody realizes that that’s not cool. Nobody wants to work in an environment like that, so I think we are evolving. It’s good for us to talk about this and just raise awareness.

Carlos: In terms of women in engineering and in general but also in your particular cases as a woman as a leader of engineering. Can you tell us about the challenges you have to face, or had to face in the past? Any advice to share with other women who might be listening into the show or to men who are not sensitive about that topic, haven’t even thought of this. How can we enlight these people?

Claire: You know, I have to say that I’m busy dealing with the issues of my job. Like I said, there were more women in the beginning of my career and I didn’t really compartmentalize this as a huge problem until more recently as I saw the statistics of number of women in tech going down and more women are getting out of tech. I am very disheartened that it happened in my career. It happened on my clock while I’ve been engineering leaders these things were happening where women didn’t feel welcome to the technology companies and they didn’t feel like they can be successful because of the biases that exist or the behaviors that exist in the companies. When I started at Udemy there were no women here in engineering, or product or in design so we worked pretty hard to attract more women and try to create a work environment that is more inclusive but it doesn’t come that easy. While I’m a women and you think that because I’m a women that there would be more respect or just the more conscientiousness about including women in our groups but I would say first 2, 3 engineers in our company faced some challenges as well. We have women’s group where we women engineers actually get together and talk about some of the challenges that they face. But through that I realized just providing them that forum is not good enough. It’s really we, our entire engineering group or our entire company has to become aware and create a safe work environment for everybody. That’s when I really championed bringing in management bias training to the company and start having these small group discussions including men and women. I believe that diversity problem in tech man has to get involved in solving this. Women alone cannot do it because men has also to champion the cause and they have to come to a realization that makes a much better work environment and they could produce a much better product when there is that diversity of thoughts and backgrounds that is brought to the table. Like I talk about this with my male engineers all the time, you know, I want you guys to be also the champion of diversity not just women always talking about diversity. You know, one of my peers who is a VP at a company said, “I don’t want to go out there and talk about diversity because I don’t want to be names as that women who talked about diversity.” So like women are even afraid of talking about diversity because they don’t want to get that identification as a woman who talked about diversity. But if you don’t talk about it then we’re going to continue to face these problems. But it’s not just women who should be talking about this. I want more men to talk about it. You know, I go to the CTL groups with groups of colleagues both men and women, and I’m asking my male colleagues, you guys should be out there talking about it, you should be writing a blog about why it is important to build a diverse team. I think we all have to take responsibility for creating tech more diverse workplace.

Carlos: I couldn’t agree more. We recently hired our first female on the team in October last year and we’ve added a few ladies who were on our team, and, maybe it’s a little bit of sexism what I am about to say, but not in a bad way, but they have given our workplace that female touch that just different what guys do, again, I do not mean that in a bad way. I think that’s a really positive thing by the way, we have to embrace our differences and they have been able to balance things out alot in our company. So, even if we’re being a small team we are trying to balance the mix between man and woman. We’ve really enjoyed seeing what teams feel like when some of our female coworkers now are on the team and we’re really pushing hard to making sure that it stays in balance, and also to make sure that they are comfortable. We try to be as natural as we can, but, with the same token, for example when I say “Hey guys!”, instead I say “Hey… hey everybody!”. So, anyways, we are seeing the importance of that touch.

Claire: I believe we all are building products for all people or people of both genders, right? I don’t know too many products that’s only being built for men or products that are only being built for women. Maybe Birchbox for women or Birchbox for men but it’s still like we are building this software systems or products that serves both genders so I think making sure that, and both genders in all racial groups and all that and especially our product, so I think it’s important that product is built by people that represents the people who would use it, especially at Udemy because we are trying to reach the world of people who want to continue to learn. I believe it’s really important for me to build a team that represents that audience that we are trying to serve.

Carlos: Alright. Ok Claire, this has been an amazing interview. Now I have three last but very important questions to you. So first one is, if you say run into yourself, your younger less experience self, let’s say 15 years ago, what would you tell yourself? What’s a key piece of advice you would tell yourself?

Claire: What key advice would I tell myself 15 years ago? Ok, so 15 years ago was during the .com era, right? I’ve always been, I think I wish 15 years ago that I was more aware of these issues of building this well rounded skill set in a group and in individuals and I wish that I was better equipped to instill those values of recognizing diversity and also values of building more agile software development process because it wasn’t as agile and we were just starting off 15 years ago. I think the advice I would have given myself would be think out of the box and always learn and be open to learning new things and change things. You know, always look outside of your circle to learn new things and recognize some of the amazing things that are out there as well as some of the problems that are out there so that I can always do better.

Carlos: I know that you can definitely refer to any resources from Udemy in your courses but what’s a book or resource you would recommend based, you know, it could be about some of the topics that we discussed today, diversity, inclusion and all these things or engineering, what would be some resources or books you would recommend?

Claire: Some of the books that I would refer to would be so I like the book, it’s an old book called “Leadership is an Art”. It’s about like how to provide the leadership that you need to provide. The recent books that I really enjoyed were the book on grit and how grit is so important in a person in terms of being able to tackle and persevere through things that are difficult because we all face a lot of difficulties in life and it isn’t the talent or smartness and all that, it’s really about the grit that kind of gets you becoming more successful at tackling new challenges and being successful at it. Grit is a book by Angela Duckworth and I really enjoyed reading that. The other person whose books I really enjoy is Brene Brown. She talks about Power of Vulnerability and she talks about daring greatly. You know, importance of being in the arena and taking those risks and letting yourself be vulnerable in opening up.

Carlos: Alright, we’ll have those on the show notes. And there is a resource that you led me to actually, Managing Bias by Facebook. I’ll add that also to the show notes. What do you think?

Claire: Yeah, that would be great. There is also a similar kind of training from Microsoft as well as Google. I just chose to use Facebook because we are a data driven company and Facebook a lot of their research that they talk about is very data driven and it’s a researched based.

Carlos: Alright, last question. If you’re hiring how can people apply to jobs and how can they actually be noticed by your team? How can they find you if they have any questions, how can they find your work?

Claire: Yeah. I’m everywhere. I’m on LinkedIn so feel free to connect with me. Udemy has a career page on our About page, so look at our job listings. We have offices in Dublin, and Ankara, as well as San Francisco and we’re hiring in all three offices. So people in Europe who want to join our Dublin team you could submit your résumé for the Dublin positions, and people who are in the States or in California who want to apply for a position in San Francisco we have open positions here as well. But if you are really passionate about education please feel free to reach out to me directly. We love hiring people who are very mission driven.

Carlos: Alright, well, that was our episode. Claire, I want to thank you so much for coming on the show and taking time to answer all my questions, and I really had a good time. I hope to next time I’ll meet you in San Francisco to take out for coffee.

Claire: That would be great. Thank you for inviting me, really enjoyed that talk.

October 25, 2017 / Comments Off on Jon Marston with English Central: How Radio Hosting Led to Software Engineering

Show Details

Jon Marston, with English Central shares his experience of how contradictory backgrounds have led him along an untraditional career path.

As a college student, he began studying physics. During college he hosted a radio show because he loved music. And after college, he ventured in to radio news. Today Jon Marston is the VP of Engineering at EnglishCentral, an English teaching software program designed to teach English as a foreign language.

At first glance Jon’s career choices appear as opposites, but as you listen further, he will reveal how his creative background has in fact supported his journey.

Show Transcript

Carlos: Alright, Jon, my friend, thank you so much for coming on the show. How you’re today?

Jon: I’m doing pretty good.

Carlos: Alright, so Jon, in our pre-interview, in our previous conversations, I think one of the big things that made me think this would be an awesome subject is how your own background or your own experience somewhat converted to what you’re doing today, so let’s start there. Tell me a little bit about your background and tell me that story of how did you end up in software?

Jon: Well, I guess like all software engineers when I was a kid in junior high my parents had a computer and so I used to write little programs. I think I wrote a program when I was in 5th Grade to keep track of my comic book collection. Apple 2+ and always that was around when I was in high school, you know, did some computer classes and things like that. And when I was in college, I went to Cornell in upstate New York and I decided, this is the early 90’s or so, and I decided, wasn’t really interested in just working with computers. I want to explore the whole wide world of engineering and so in college I studied Physics, Engineering Physics which was pretty rigorous, difficult field with a lot of problem sets every week, at that time very little computing, very little software. I think I took one software course my whole undergraduate academic career was about numerical recipes in C and trying to solve Physics problems. But it was also the only course I got an A in. It was in my major everything else was not so great. Really I was just learning to be an engineer. I’m learning to solve problems and kind of learning methodology for how do you take a problem that is presented and do research, think about methodically. How you do solve the problem and how do you go from there? The other thing that I did in college was I spent a lot of time at my campus radio station.

Carlos: And that’s why you have such an excellent radio voice the way.

Jon: It’s been a while. But yeah, I used to do the 70s at 7, the Friday nights. You know the whole thing. What I found as that I really love music. I really love being a DJ and playing, you know, doing this 2AM shifts, doing these overnights and evening shifts and playing all kinds of music. I started exploring the news side of radio and loved it I guess is what I found. I was really passionate about it. I would spend nights hold up in a studio we had really real machines on those days and just place them together. Concert ads for Maceo Parker and Bootsy Collins and all kinds of crazy stuffs that I was really passionate about.

Carlos: There is contrast there between your two things. What do you think made you so interested in this super contrasting creative field versus what you’re doing before?

Jon: Well, it was something that I always wanted to do and I found out when I was growing up I enjoyed doing creative writing and as well as doing math. So it’s two sides that I just have always kept going through when I was a kid, even now I guess. And I know that when I was seeking out in engineering school I was very much drawn to a place where I would be exposed to more ideas than just engineering. I want friends who are artists. Who were going to be doctors or lawyers, or creative types and things. I wanted to really explore that and I guess I found over the years that that’s help me be an engineer. I got the rigorous training on how to solve problems, you know, very methodical way. But sometimes that’s not the right way to solve the problem or sometimes it’s not the right way to communicate a solution, and so having people that you are used to interacting with and working with that have another approach. You know, left brain, right brain different ways of thinking of things has definitely been a big plus especially doing things like user interface design or working with graphic artists or user experience people.

Carlos: Let me jump on a bit of a tangent and this is probably inner geek in me, so do you still like, I’m super interested in things of like Astrophysics and this sort of thing. It is from a scientific perspective but really a lot of it goes like above my brain and it just goes over my head very quickly. Are you still interested in this sort of subject as kind of this personal time?

Jon: I am. I love Nova. I love reading about the search for and dark matter and dark energy and things. But I will admit part of why I, you know, when I got out of school I didn’t pursue the PhD, it was also over my head.

Carlos: This is coming from your study.

Jon: I mean, I really love Quantum Physics and Quantum Mechanics and learning about Electrodynamic theory and all kinds of stuff like that. But I could see that this was the hardest of the hard. And people I was competing against were really passionate about just his. This was the only thing that they wanted to do and it was such a difficult field. I found that my passion was at that time in a much more creative field. And so it was clear to me I was never going to be able to compete with these guys.

Carlos: And just as an offside topic here, is this something that is made me think a little bit like the whole competition thing. I think that comes as kind of dumb in a way because yes some people are better than others but that gives us this mentality of scarcity like, “Oh, we don’t have enough.” We don’t need them anyways. Yes, maybe you’re not in the top three but even if you’re in the Top 100, you’re still in the 0.01% of the population that gets that sort of thing.

Jon: Well, yeah, I was comfortable with myself that was kind of where I was hitting a limit on what I could do. For me really the passion was part of it, and I’m confident that if I’m didn’t that passionate I would have chosen to pursue that. One thing I like about the industry is that there are so many different opportunities in so many different places in all kinds of variation of what you’re going to do. Academia, you know, so the place where I’ve been was sort of feeding into being a Physics professor and feeding into PhD program, to post grad programs to professorships and things. And that’s a really brutal competition where the number of people that get waddled down at each step along the way is very brutal. It’s a very very difficult track to do and it really just feeds in one direction so much of it. Whereas with private industry which is where I spent my whole career there’s so many vast different types of opportunities that people from all kinds of different backgrounds and all kinds of different things can do can jump in. I’ve certainly been happy and have never really regretted not pursuing the Physics track.

Carlos: Alright, so now let’s jump a little bit into like your professional life now, so you work in EnglishCentral. What is EnglishCentral for those that don’t know it?

Jon: EnglishCentral is a language learning site, if you know Rosetta Stone or things like that. And we’re focused on teaching people just English because that’s really the language of business around the world. Our core product is video and speech recognition system where we’re giving people videos to watch, things that they are interested in, things like movie trailers and different things like that. And then we give them the transcript to read along to and then we grade their pronunciation so we have a custom speech recognition type of system which listens to what they are saying and then gives them guidelines should they work on their L sound or their R sound and things like that. We also have vocabulary quizzing, and learning and connecting people with one on one human tutors as well.

Carlos: So just for us to get kind of a glimpse or sense of how large your teams are? You’re the VP of Engineering, how many people are in financial engines? How many people work their?

Jon: Overall we are about 400. Many of those are English teachers who were doing tutorials sessions. My engineering staff right now is probably around 25 and we’re globally distributed. Much development in the Philippines. I happened to be in Boston in United States for the team here. But we also have people in Japan, Korea, Turkey, Brazil, you know, our market is global and so we have a global presence and also engineers are distributed in different places.

Carlos: Alright, so now what is a VP of Engineering do at EnglishCentral? And I asked this question because I’ve seen this role all throughout the industry. But to me it could mean something different in different companies so what does a VP of Engineering do at EnglishCentral?

Jon: Well, my role is to build teams and to make sure that they can solve problems and that they are working on the right problems and kind of constantly be checking. Everything, be checking all the groups to make sure that they are all heading in the right direction and that they are not stuck. And then also be making sure that I know what they are going to be working on next. And so I was one of the founders of the company so we start off at just a handful of us and at the very beginning I think the most important thing was to understand architecture. So understand software architecture and to be able to jump in and write code and find really good people who could execute the vision, and since then the company has grown. You know, we split up into more and more sub teams. We have an iOS team, we have an Android team, we have a web frontend team, we’re backend REST services team, we have Quality Assurance team, we’ve all these different teams that are interacting as well as the designers and some of the different folks there. A lot of my goal, a lot of my job in the day to day is to be making sure that the right people are talking to each other. That somebody to know what everybody is working on and to know when, “Oh, you are working on this part of the system and you’re stuck on a problem. Why don’t you go over and talk to that person who has seen something similar before”, and you just facilitate communication; that ones are a huge part in my day to day job.

Carlos: So that means you have to have a ton of context in basically everywhere on a sprint to sprint level.

Jon: Yeah, that’s my job actually, is to understand how all the pieces fit together, where we want to be 6 months from now, where we want to be 3 months from now, and what are all the intermediary steps to get there, and to be feeding people the things that they can work on. Make sure that all the different sub teams understand what the overall goal is, understand what the overall vision is so they can make decisions along the way to get there. But it’s my job to really understand the whole global context now all the pieces fit together and why, and then to be watching things and just to be giving small corrections. The best is just to be giving small corrections. The lighter my touch can be the better I’m doing my job is one of the things I found.

Carlos: I read recently an article about this guy from I think Scribber, One of these companies, financial companies. Not Scribber, but I forgot the name of it now. But he was talking about how a COO does a lot of editing and not writing. And of course he means that as an analogy to this sort of kind of management overall that his role is particularly not telling people what to do but seeing base on what they do. He gets to edit and help them shape up base on their actions. It is somewhat of what you’re saying, I mean, it makes me think of that. But I think one thing that I just thought of that kind of puts two dots together is this whole notion of growing into a role, right. And just thinking back into about your story how you work from engineering to radio back then into software engineering. I think of how you grew into the software engineering role and how the kind of the little bit of the gap between the two, right.

Jon: Maybe I can tell you the, so I’ll explain how I went to school and loved radio. We’ll rewind a little bit, so I graduated, I’m going to date myself precisely right now. I graduated 1995 from Cornell with a degree in Engineering Physics. Then I asked my parents, “Hey, I just got this great Ivy League degree. I’m going into news radio.” They kind of put their head in their hands and then said, “Ok, let’s see how this goes.” And what I did for the next 10 years was work at a radio station in Boston called WBUR, just part of the National Public Radio Network. And I went in at the ground level as an audio engineer, you know somebody working the boards, placing microphones, doing mixes and stuffs like that, and just went pure radio. Understanding the technical thing was kind of a good piece they brought to it. And I worked my way up to be a producer, producing stories, which was a lot of fun. It was a chance to see the world. I had a microphone, had a recorder and went all over the world recording stories, meeting people, doing interviews, and then bringing them back, mixing them. And this was also around the time that the transition was happening in the industry and really in the whole world for all media, from analog to digital, and I get to be part of that and was part of launching some new shows. Some shows are still on. There is a show called “Here and Now” trying to help launch. There is another once called “On Point” which is also still on those both on National Public Radio. And we were trying to figure out how do we go from real tape to a whole workflow where we’re recording into computers and editing on desktop machines and getting the sound from place to place. And it was quite an experience, so it was quite a problem solving experience where the answer is going to be was not known. It was also very much like startups where you’re starting, you’re walking in, you’ve got a blank whiteboard and you’re saying, “Ok, what we are going to do.” And those experiences were great and I use those today. I use that same type of urgency. Nothing is more urgent than a live daily show in terms of deadlines and things like that. In software there is a world of sleeping deadlines that people have kind of grown accustomed to but when you’re on the air at noon and that is happening. You have to make sure that you make your deadline. That was a fantastic experience and I think like being a director in that media role is actually how I approach my VP Engineering role. The director is the one making sure that everybody, you know, the voice talent, audio engineer, the different people, they all have in front of them the thing that they are supposed to work on right now. But the director’s job is that be thinking about what’s next and what’s next after that. The director’s job is to also be thinking of how all those separate pieces are going to assemble together into one coherent hole, and that was really good experience. That’s how I approach my job now.

Carlos: A little bit to go actually, I was thinking of this and it just slipped my mind but basically it seems like you grew into that role, right? What is your opinion or what is your philosophy about how now some of your engineers are growing to roles, right? Or do you usually look for people who are able to grow into these roles in the same you did, again, by the mixed experiences and all these things that you had.

Jon: Always. I’m always looking for people that are looking to grow into the role.

Carlos: Why is that important?

Jon: Because they will bring enthusiasm. They will bring fresh ideas. You know, I would much rather hire somebody who is trying to… One of my key interview questions when I’m interviewing candidates for jobs is, “What is the technology that they are interested in working on that they haven’t had chance to work on yet.” I asked about different open source projects that they might be following or have contributed to. I want people who are passionate about what they do or generally interested in learning and growing. And that enthusiasm that people have for the field in general will translate itself directly into how they approach their job and what they invest into the product. Do they care about the quality of the code? Are they excited about working with some of the more senior people or great teachers so where they can learn their craft. People that I found and I have a harder time, one of the warning signs of somebody who is potentially a job candidate is if they’ve been working in the same exact technology for a very very long time. When I see somebody who has been strictly a Java Engineer for 10 years in a very precise part of it, part of the stack, is a warning sign to me. It’s a warning sign to me that they learn their one skill. They are not very ambitious and they are happy just kind of writing it out and until they are done with the technology. Until that technology is just out of date. People what I do like, what I’m looking for more old and more experienced people. I like people who are part of that turnover of the technology which is natural. Every 4 or 5 years there is a new way kind of doing things. These days it’s all JavaScript in the frontend. A few years ago it was Ruby on Rails.

Carlos: Flash before that.

Jon: Yeah, Flash before that. There is a whole reinvention that is critical to the technology so it’s not really about your age. It’s about do you like to continue to learn, and those people I find are really the best engineers. The ones who will invest the most, who will care the most, who will really, you know, when you’re on a hard project they are going to take that extra bit of pride in what they are doing. I also know that as a VP Engineer I am trying to get these teams going and the best is where I can get a team that has its own momentum. And I can make decisions along the way that could make decisions along the way and where I kind of just mapping out a direction. The hardest team is where they are not motivated and they are just kind of working their way, they are just kind of trudging from milestone to milestone and it never gets momentum of its own. That gets more difficult. And I find that the people who are really passionate about their craft want to learn new things are the ones that will come to the projects with the most momentum.

Carlos: What I find interesting about this that you just said is that it’s kind of universal. This applies to anything. This applies to any role and yes we’re talking about technology but this could apply to let’s say somebody in marketing, somebody in sales. Like, why are you interested in this?

Jon: I mean, marketing is completely different than it was 10 years ago? Now it’s all driven by Facebook and Google Ads, as opposed to the magazine ads. It’s all driven by what is trackable. User interface design is very trendy. If you think about how everything looks now, you know, with the flat look as opposed to 5 years ago when skeuomorphic was kind of the thing. But if you look at one of the histories of these icons that cover the past 20 years, you could just see these trends and these cycles and it’s constantly reinventing itself. And, you know, so the graphic design, the code, I mean right now we have a Java backend and some of my best engineers want to use Scala to bring that in. It’s helped quite a bit as people have been working with more distributed systems. They want to do more functional approach to programming. That has worked itself very well. On the frontend we used to be LAMPP stack (Linux, Apache, MySQL, PHP) in our case and we’ve been in our process moving this to be a full Angular stack talking to a REST service back end and kind of reinventing that as it goes through. I think it can be tricky, I mean you can get someone who just wants to reinvent for the sake of reinventing. You don’t want to waste all your time rewriting everything all the time but you want to be in that rhythm of the technology cycles. I find here about 5 years is kind of what these technology cycles tend to be, at least they have been. And you want people who are enthusiastic about that and ready to kind of keep reinventing as they go.

Carlos: How do you keep a tap on what did you just said on when it is too much? When are we innovating for innovation’s sake? How do you keep a tap on that as a VP of Engineering because again you got milestones to hit, you do have corporate goals etcetera that because those are product goals that yield revenue etcetera, when do you say like, “Hey, too many ideas. We got to hanker it down and focus on product.” How do you do that?

Jon: When your product people, the key is you have a product person who has some patience but not too much. In my company I think we that we have a refactoring budget. And I can get away with doing, ok we don’t have any new features in this release but we have to cleanup this code or introduce this new thing. I can get away with some of that but not too much. And if I’m spending all my time refactoring then I’ve gone too far. If the product is not moving forward there is no benefit to the end user and you’re just cycling because you want to play the latest toys then you’re getting nowhere. You have to kind of find a balance and I found the best ways to have product people who are impatient. You know, product people who understand technology and can understand, “Ok what is the sequence? Alright, alright, you need to replace this with that and then we can introduce this new great feature to users.” “Ok, then I’ll have patience for that.” But then if I at the end I’ll say, “No, I actually really want to use this other cool trendy thing.” And you want that product person who is going to say, “No. We have to shift to the product. We have to shift to our end users.” And the engineers and the people in my role who are really trying to think of that whole context needs to be really understand what the product vision is and understand that at the end of the day you’re in service of the product vision. You’re not just writing codes, write codes for yourself. This is not a hobby project and I guess that’s the best way to find the balance. It just understands that yes the code and the technology is in service with the product and if you’re not advancing the product it’s a hobby.

Carlos: If the product is not making money it’s a hobby, something similar. Like if you’re not looking at the business side of what you’re doing then it’s definitely a hobby. Alright, Jon, we are nearing the end here of our interview but I have a couple of final questions basically to try and get some advice from you. So we’ve got part of the last few questions, the first one is do you have any books or any resources that you kind of you would recommend everybody to go and check out whether it’s personal, engineering related or based on any of the topics we talked today. What’s something that you might have us check out?

Jon: Well, let’ see, so I’ll go for one new one, one old one. So the new thing, so I consume a lot of web stuff, I love Hacker News and I love Ars Technica and those are two tech feeds that I just consume constantly. The Hacker News is just the wide world of technology and just kind of keeping an eye on that kind of gives you sense of what are emerging trends. There is a lot of noise in there. There is a lot of garbage. There is a lot of stuff that’s never going anywhere or becomes a big deal. Ars Technica, I find is a great site for just well written journalism in our field and that they cover the big industry moves. The big technology shifts and things like that. Those are the two sites I’d like quite a bit. If we’re going to pick books, I guess what made really and this is going back, what made really big impression on me growing up was the book Soul of A New Machine by Tracy Kidder.

Carlos: Alright, well I haven’t heard of that one.

Jon: If you like history this is a good one. It follows the birth of a product called, I think it was Data General. This is back in the early 80’s. This is sort of a mainframe computer, and it is a narrative story kind of going through the whole cycle of a product and these engineers. What drives them and the different personality types? And, you know, we are in a completely different world now from the technology then but is a very well written narrative. So I guess those are, you know, Hacker News is just basically constant turn of articles but if you want to sit back and read a good book that will tell good stories that is engineering base, Soul of A New Machine – Tracy Kidder.

Carlos: Alright, we’ll put that on the show notes. This is our second to the last question, what will be one, if you could pick, I know it’s hard to pick one but what’s the most valuable piece of advice you’ve been given that you could share with other VPs of Engineering that might be listening to our show.

Jon: Well, I guess think about your architecture. There is that old advice about that, don’t over engineer or don’t optimize early, I think is kind one of those maxims. And I guess the best thing to develop is a sense of what choices matter when and knowing that when you make certain architecture decisions earlier you will be going to be living with them for a long time. And so you want to be thinking about when is the right time to make the different optimizations. You don’t want to optimize too early, you don’t want to optimize too late, you know, when your whole site is ground to a halt. You’ve stopped all future developments just so you can refactor. But there are certain architecture choices, and sometimes has to do with what type of primary keys you’re going to use. I guess there are certain architecture choices that you can make early, be thinking about them a lot. You think about them, what are the things when you later down the road have to switch to one of thing to many of things, is better to make that choice earlier so you’re starting off with many things so that you don’t have to grind everything to a halt later. So if you can start on a database that distributes well as opposed to a monolithic relational database and you know that you can build from the beginnings that you were working from those constraints without slowing down your project to a halt and taking forever at your first iteration at the door. That’s what you want to be thinking about, so what to optimize when I think is the best skill to try and develop.

Carlos: Alright, I think that’s one I hadn’t heard of as of tonight there, and it made a ton of sense. You don’t necessarily need every choice at every given time. There is kind a time for everything. Cool. Alright, Jon, and now the last one and probably the most important, are you guys hiring is the question. And if you are, how can people find more about EnglishCentral and how can they get in touch with you?

Jon: Well, at the moment we’re hiring in Manila. So if you are listening to this and you are in the Philippines and you are in the Manila Metropolitan Area, look us up. Look up englishcentral.com, send an email and we’ll be happy to talk to you if you’re a technical folk. At the moment, so our team in the U.S. is kind of tied, you know, we’re not expanding our U.S. architecture in senior management. But we are looking for engineers that are passionate about Angular, passionate about JavaScript, Android development, iOS development and test engineers. The often overlooked extremely valuable person is the test engineer who loves scripting and is really creative at how to approach these problems for writing great automated tests. It’s a tough skill, always in demand and if you’re looking to break into engineering fields, you want to be a programmer but you’re having a tough time getting past some of these classic programmer exams that advance script driven test engineer route is a good one to explore. Opportunities will open up and you will find that there is not as much competition for those jobs.

Carlos: Alright, Jon, well my friend, thank you so much for your time today. And for everybody who are listening make sure you check out englishcentral.com and we’ll also put any contact information we may have for Jon on the show notes. So Jon, thank you so so much for being part of the show today and looking forward to catching you up soon.

September 8, 2017 / Comments Off on Jeremiah Ivan with Merrill Corporation: Using the Tech Road Map

Show Details

Jeremiah Ivan shows us what it looks like to use the startup mentality to run a larger corporation.

Merrill Corp is a financial data manipulation site used by other companies to help make financially sound decisions. To run successfully, he discusses what it takes to create a desirable team mentality.

In this episode Jeremiah reveals the components of how using a tech road map helps him to accomplish his goals as the VP of engineering at Merrill Corp.

In the words of Jeremiah “Marrying the tech road map, with the product road map, with the personal develop road map” are all equal pieces in the process.

Show Transcript

Carlos: Alright, Jeremiah, thank you so much for coming on the show. How are you doing today?

Jeremiah: I’m doing great, so great.

Carlos: Alright, Jeremiah, and the first thing I want to start off with is first of all thanking you for taking the time to join the show. You and I had a quick conversation in the past kind of our pre-interview. Part of our process and I thought you would be a great fit because you have a specific set of experiences that I think other people might find interesting. Just a way to get started, tell me a little bit about yourself and how did you end up in tech?

Jeremiah: Sure. I really started when I went to college interested in doing Java. However, I was 18 and a little crazy so I didn’t went for a lot of work into it so I ended up dropping out of that for a little while. Luckily, I was at Carnegie Mellon I started studying language and really got into Computer Science. So as I settled down and became more mature I end up discovering a good interest in Computer Science really as almost applied language, as applied linguistics if you will of creating something. You know, basically through these words and symbols and I fell in love with this that way that in problem solving. And that was in the 1990’s and I really got too from there. I was an engineer for years working on various projects usually in startups. And then I got involved in leadership only on the last about 7-10 years.

Carlos: Well, 10 years is a long time and that’s what’s interesting because some of the people that might be listening maybe are not there in their career path. It’s interesting to see how one goes from maybe somewhat of a mixed background of in the arts and then you’re part of leadership of a corporation in the tech side so before we get into your specific role what is. I know today you’re working at Merrill Corp, right?

Jeremiah: Yes, I am today. Merrill Corp is an enterprise, this is my first non startup. Merrill Corp is an organization that’s been around for 50 years, more than 50 years, in the financial services area. They got into software about 16/17 years ago into the virtual veteran space doing a lot with secure document collaboration. I came here along with two folks I originally worked with years ago at Snagajob. Really we’ve all been doing startups and the curiosity for us is Merrill offers such a great opportunity in a market space as far as with the investors and where we could go with secure document collaboration. What it’s like to take a startup mentality around technology into an older business. You know, when we got here deployments were happening every 5-6 weeks. And now we’re doing daily deployment. There was no automation to speak of and now we’re in the cloud and we’re doing regular test automation and deploys. That’s the exciting piece how does some of the techniques people used as startups to transform an organization apply or don’t apply to a larger older enterprise.

Carlos: Let me ask you one of the biggest challenges I’ve seen with other leaders that come from this kind of a startup world or used to more nimble and easier to maneuver companies when you come in to the company as a VP of Engineering what’s your biggest, you know, how do you get passed that friction? How are you able to move the organization into the direction that you know I should go but at the same time you know it is way more rigorous than do a startup.

Jeremiah: Definitely, well in any situation of a VP of Engineering whether you’re in a startup or you’re in an enterprise like this you have to be really diligent in your interviewing. At that leadership level you are really interviewing that organization as much as they are interviewing you. Therefore, you really clear that how you handle conflict, the kind of mandates you’re looking to have when you come in. So early on we wanted to make sure what kind of stack we’re looking at building? What kind of budget would we have to make changes? What kind of special dispensation would we have to make changes that would directly impact compliance, that would impact things like… You have to look at those things early as almost part of your requirements, right? Again, I think this is where it’s really important when you’re a VP of Engineering, you know, your role is a product role. Your product is Engineering’s performance. Their ability to do discovery in such a way they could be very clear about the value they are pursuing. Their ability to do delivery wherein, “Hey look we say we’re going to do X we deliver X.” And we’re really clear on how we’ll measure that whether that’s technical performance. If you are proud owner of engineering performance about velocity or quality or stability, so you have to really clear on that. I think it’s even more so important with an enterprise because they just said if they have a built up of all these rules and we’ve always done it this way. So you’re doing requirements discovery during that interview and really during the first period of 60 days you are there.

Carlos: One of the things that come to mind when talking about somebody who had done everything in between and kind of the junior role and the senior role is this transformation and maybe growing into a role. How important is it for you to take this into consideration with new people that you hire. Let’s say you have an open role for an architect. Who fits that role, right? Do you look for somebody who’s got experience as an architect or do you find somebody who you could grow into that job and how do you do it?

Jeremiah: Sure, and I think it’s a combination of say “Why”. You have to look at your team in terms of almost chances of capability and experience, so for example, when you’re working with an enterprise organization that’s a different mindset around developing for it so think of it like this. In enterprise some folks will never allow to look at the staff in production. We’re allowed to look at their code in production and see what the logs are speaking out. Wow! That’s going to mean that there is whole avenues that they aren’t experienced in, operation readiness, monitoring, areas that just they weren’t even allowed to do. So when you think you’re bringing people on. You’re going to be bringing people on who may have strong capability in engineering but not that level of experience. I think you can bring on and we certainly have because we working with folks that are great developers but from an enterprise background, that have capability but not experience. You have to leaven that with folks that are experienced. When you’re thinking about a team, wherever you’re trying to go and every situation that I’ve been in it’s about transformation or moving the needle in an organization to improve performance. You’re going to have a group of people that you find there they are strong and capable and they’re going to need to learn something. That is part of the reason why you’re there is to teach it. Maybe you’re teaching how to do architecture. Maybe how to be operationally ready and aware, and how crap to run both. Maybe you are but chances are you cant’ be the only one doing that teaching so you have to figure out how you build up that other layer. That chance of people who are not only are capable but also experiencing the way you’re going towards. So what we talk about here is we’re looking to build a capacity where we are operationally ready, production ready microservices and we are actually using the book of Susan Fowler, Production Ready Microservices right here at Merrill and really using it as a bible. In addition, we are pulling in folks that had been there and done that so that we can build that so when you say about, “Hey, we’re hiring someone for a senior role do you look for a mix of talent?” Yes, but not in that person, right? You’re looking to build that mix in the team of people who have been there done that and those who are hungry and capable maybe has been there and done that. And then I think you always have to have a lot of really good juniors because these folks are hungry and they haven’t learned maybe anti patterns. They haven’t learned how to do the wrong thing yet. So those three chances I think are what an enterprise is or a startup.

Carlos: One of the things that I’ve seen that are relatively hard. I want to say it’s hard but it’s a less clear path in setting up expectations and accountability, right? The structure for both for accountability and expectations, you know, in different teams I see that work differently. It’s very subjective. It will depend on the leadership style, the person. What’s your take on this because as you’re talking about bringing in or growing somebody into a role or again that mix of skill set. How do you prepare them? How do you guide them through this setting of expectations and goals they need to meet. How do you usually do these?

Jeremiah: Sure, well there is nothing better than pushing your codes frequently. So at a very tactical level when you’re talking about expectations and accountability the first thing you try to do is setup a process where in an environment so we a dev stage in production. I mentioned how we’ve got a team just in a matter of months selling 5-week deploys to daily deploys. Well, the way we’ve done is we started out with automated testing and then we started out with a dev environment that gets built regularly. You know, that’s the part that’s actually continuous integration if you will. There is a PR system that happens and then ultimately it passes some automated checks, it gets merged and it goes out to a dev environment for a larger set of Capybara test run. And you know what it then fails sometimes. And when it fails you got to make a correction so some of the accountability you want to try to learn before the alert goes off in production. So if you’re going out daily in production or if you’re just at a point where you’re going weekly of production, you want to increase that kaitens in dev stage. You want to treat those environments seriously. Have the same kind of monitors and dash board. You think it’s almost like training camp for a sport if you will. You want to sweat and hurt yourself in July so that in the fall, in the winter when it’s the playoffs you’re doing well. That’s been helpful in learning or working muscles where people may not have their accountability and that’s true not just for folks that haven’t had an opportunity to actually support code in production but also, whether they are experiencing that or not, they could be juniors as well. People that are coming in out of code academy or out of college where keeping it built and strong and stable just wasn’t something they had experienced.

Carlos: I think that one of the interesting point that you just mentioned is the whole notion of; I don’t want to call it practice but somewhat of that working the muscle, right, practice and getting better at that because you’re constantly improving. How do you deal though with those folks that are as you said out of code academy and sometimes younger folks that tend to want to deal with? Maybe the word is not younger but maybe more junior folks want to experiment with the new tools, some of these new frameworks as you see we have. We are in the renaissance of frameworks. How do you balance that desire to experiment and production stability.

Jeremiah: Oh yeah. Well, you know, and that happens or just polyglot. What we try to do when people say, “Hey, I have a great idea for a new framework”, or even in the case of microservices, I have a great idea for a new microservice. We want to try expose that to other developers to say, “Hey, look”, in Susan Fowler’s book she talks about almost like an rtnt will for microservice to say, “Hey look, I think this new microservice is necessary here are the things that would do.” In confluence or whatever your wiki is you would have request for comments on that send to people and say, “Hey, you know what actually it looks like you will overlap with this service. Why not just do your work here?” When it comes to new frameworks and new tools I want people I think you need to in your infrastructure and your dev ops to go an opportunity where the UI team can try out a new webpack. They can try out some new modules and some new libraries, so you want to try to build in some separation there. It’s a combination of pushing the notion that if you have an idea you have to open it up for comments and then show how. And this is really good training for juniors, people like say, “You know, why do I have to go through this crap? I really want to use this fun new cool thing.” I really want to get to them at that point to say, “Ok, one day you are going to want to be a senior engineer or maybe an architect or God forbid you’ll follow the dark path and you want to be a manager.” You’re going to need to be able to make a tech roadmap, right? And as much as you, and I will say like I’m pretending I’m talking to seniors, much as you may bitch about, “Hey, product doesn’t give me great requirements and I don’t understand what you want me to do. Well, you can’t give me a Nebula’s tech roadmap or you’re going to this wonderful upgrade to this new library but you can’t tell me when you’re going to be done. Or you can’t tell me why it’s so off other than it looks cool in the blog article.” Look, I want them to do a couple of things. I want them to open up so the greater group why I think it’s a great thing to do and be specific about what engineering performance will it change. Will it change velocity? Well, we can measure that. If it’s going to change performance, we can measure that. We can run some JMeter scripts now and then pick one small area where you put this library in and then run them again. Show me that it’s it, because now you’ve got a case to make more stories to put this library out there. Does this going to improve quality? Maybe you got a better way to do acceptance test or mocking. Great! Let’s pick an area to do that and then two sprints later let’s see that there are left bugs in that area. So you’re still on their side. You’re still saying, “Yes, I want you to go out and find new ways of doing it but we’re going to hold you to the same level of accountability that you want to hold product, the product owners and the UX folks too to prove that what you’re asking us to do is worth it, that it’s going to make an impact.”

Carlos: It makes sense especially because you want them to be cognizant to the process, right? You don’t want them to just say, “Hey, I want this because of that.” It’s good for them to get the big picture, to get the context.

Jeremiah: Definitely. One day they are going to be making a tech roadmap and that’s the questions they have to answer is; you know what it’s either comes down to velocity, quality, stability, performance, speed. Those are the things you are impacting and that’s why we make tech decisions, that’s why we refactor.

Carlos: Tell me a little bit more though about your role of VP of Engineering. It’s somewhat nebulous in the sense, a cool word that you use a second ago and I thought that I think it describes that name because I’ve seen VPs of Engineering do things in different way. Like some completely different roles in one company versus another. Can you give me a little bit of a flavor of the structure? What does a VP of Engineering do versus other roles in leadership?

Jeremiah: Sure, yes, no problem. When I was a VP of Engineering for Camille at Rent The Runway I had an opportunity to be part of a VP of Engineering group and in that city and folks were there from Pandora, and a number of different spots. I Remember people would sit around and go, “What exactly we do?” And part of that was a joke; a part of it is true because it’s a role that can sometimes be in between. For me it is really about being the actual product owner for engineering performance. I think in that role you’re the person that interfaces most of the time with the product organization so you’re about where they want to go, right? And you’re really trying to hire and train up the team to make technical decisions that deliver the quality that we want to see the quality improvement, the velocity improvement, and the performance improvement delivering value cleanly to the clients. So yes, you’re participating in what value may look like. But you’re not the product person. You’re not the person that also makes the decision about what the customer is going to want. But you are the person there to contribute that decision and most importantly to say this is how we will cleanly execute it. And depending on the size of your organization, right? If you are a very very small startup and maybe used to handful of people so you may be making these decisions yourself a lot. In a large organization you’re really trying to scale and you may have couple of directors that are really helping you with that. But a VP of Engineering role is certainly is the role I’m very happy doing. I think doing the C level role is just well it’s a whole other fish. The thing with the C level is like saying you want to be married to who? So like young engineers say, I want to be a CTO one day, and I say that’s great but it’s like saying I want to be married. Who’s this person that you’re marrying? Because this C level you’ve got the board, you’ve got the investors, you’re managing sideways. As a VP of Engineering you would know I think in the best case you’re kind of the XO of the ship. You’re the Executive Officer. You’re making sure, you’re debugging your organization if you will but that’s one of the top things you have to do as a VP of Engineering is you’re there to debug the organization. The organization as a whole, not even just engineering, but as a whole you’re there to figure out what bugs and in the communication of the organization certainly specifically how we communicate as engineers and how we select our tech roadmap items. But you’re debugging the organization so you can get that superior engineering performance, and you’re really trying to marry that tech roadmap. You’re absolute ideal situation and barely ever get to hit it, right? But you elegantly marry the product roadmap to the tech roadmap, ok, and to the personal development roadmap. You are able to find the right thing that product wants to do and you marry that to the areas you need to refactor so almost the new features of the sugar that helps the medicine go down. Along the way you find the right combinations of senior talent, junior talent that want to live on the senior side and learn on the junior side. Then that’s like killing three birds with one stone.

Carlos: “The sugar that helps the medicine go down”, that’s a first one. I love that one. Alright, well, Jeremiah I think this is really great advice for everybody. I have three last questions for you that are a little bit more on the personal side. So what advice would you give let’s say yourself if you’ve ran into yourself 10 years ago or 7 years ago. What’s one thing that you have learned that you didn’t expect to learn but now you know it so you would tell yourself?

Jeremiah: 10 years ago, I would say, “Well, just get out of that relationship.” No, I’m just kidding. Let’s see, so for work right? You know what’s interesting if I look at myself 10 years ago, so 10 years ago I first started experimenting with this dark side of engineering management. I really took it deeply seriously and you should take the course seriously, but in the wrong way. I just stressed myself on it. I’ll tell you, Carlos, my history in the beginning was I was Senior Engineer. I went to engineering manager and I was given the clipboard. My boss at that time was like, “Hey, you know what you’re not ready to be a manager.” He was right, ok, so I went back and I was an engineering lead again. I was a tech lead again. And that was good time holding the clipboard and then I came back I became a manager again and it’s like I became a director. In that case, I remember there were two people. This is back of the shift where people still thought it was ok to play assholes. And thanked God we are past that, we hope we are. It was just not acceptable. And I said, these two individuals had to go but I had an old school manager and that person say, “Hey, no they don’t.” So I took a step back again. I would say during those times I felt bad about it. When I look back at it each of those times whether I was “in the rise” which I was in the second time or hey I certainly did deserve a step back and go back to being a tech lead were some of the best times ever. I would say if I would give myself advice as someone who is just starting to become an engineering leader is you know what, do not think that taking a step backwards for a little while and getting back to the trenches is that at all. Not at all. It could be very valuable especially when you’re starting now. I wish that more people did that.

Carlos: Yeah. There’s somewhat of desire to move fast or move forward too fast and that usually can lead to problems. I think that’s great advice. A little awhile ago you mentioned a book, maybe that would be one of them, but what’s a book your would recommend on some of these subjects we talked today?

Jeremiah: Well, Camille Fournier has just written a great guide to be an engineering manager. And I can say that she’s been one of the best bosses I’ve ever had and I could definitely hardly recommend that book. I would say that again for folks that are working with getting teams ready to work in a modern operational ready way. I would hardly recommend Susan Fowler’s Production Ready Microservices. A lot of teams are exploring microservices. I would add one other book there. This is an older book and this is Michael Fisher and Martin Abbott’s book – The Art of Scalability. And the reason why I add that is this is the third company I’ve been to where they started something with microservices and they go, “Oh no, what we will do?” And it’s usually because you have big old macro services and little baby nano services. Services that do way too much and services that do way too little. I’ll give you an example, here at Merrill when we came in they had tried to get to microservice glory land and one of the issues we do documents, right? So there was a big old honking service that creates all the metadata when you’re going to copy a file so it creates it in Mongo and say here is your file and that was a little teeny tiny baby service that just does the blob copy of the file. And we sat down and we used that as a teaching and I would say, “Hey look. What situation are you in?” That little teeny tiny service failed, that blob, the files isn’t actually copied. But for some reason you want the quiet and still think it was, and that metadata was created incorrectly. Why would you want that? And that’s why I moved to Art of Scalability. Art of Scalability talked a lot about distributed systems and specifically around swim lanes. I really do encourage teams when they start looking at microservices to not just think of it as an extension of object-oriented programming. Not saying it can’t be philosophically but really when you think of breaking down activities into granular services that you can have accountable to a team. It’s so much better if it’s from the customer’s perspective. So if you’re talking about a copy action for the customer that’s all one thing. They don’t care if you’re making a record in Mongo and then copy in the blob, that doesn’t mean anything for them. So if those two things are what it takes to copy those two things should be together. That’s what I love about the Art of Scalability it really centers on swim lanes that covers management and issues of the day.

Carlos: We’ll definitely have those books in the show notes. Curious, which of those is making a bigger impact on the day to day today.

Jeremiah: Well, personally for me and for the manager’s, Camille’s book. I think Camille did a terrific job talking about managing. I would also recommend again, organizational thinking, see Wodtke’s book of Radical Focus. Really great, she covers OKRs but she also covers what it takes to focus an organization. So if you think about the actual human element of managing, again organization and getting people ready, I would say it is Camille’s book to engineering managers, and Christina’s book around Radical Focus, and then I would say the great thing about Susan Fowler’s book about production ready microservices is it’s both the technical and the human parts. She spends a lot of time talking about what it takes to be production ready in terms of like you’re on call. How do you handle on call? How should your alerts be set up? That’s real rubber hits the road stuff and then for the pieces of how do I design these services so maybe not that many alerts will fire then I would go to Art of Scalability. That’s how I order to get ourselves teams, I give out the Radical Focus and Camille’s book on Engineering Management to our leaders, and then we’re actually doing a book club right now with Susan Fowler’s book, and then we would go to Art of Scalability after that.

Carlos: I love that. I mean, it seems just because how passionate you talk about those books I think they’re going to be great. I’m going to check them out myself and hopefully any of the listeners.

Jeremiah: Oh yeah. Susan’s book is just a great one to start with productive microservice as for a team as far as, hey what to worry about. It’s almost a recipe book. If you haven’t read Camille’s book you would love it.

Carlos: I’m going to check it out. So Jeremiah the last question, probably the most important, so first of all I try to use this question as a way to sometimes what happens is that people that are listening in end up saying, “You know what, I want to work with this person. How do I get in touch?” One is are you guys hiring?

Jeremiah: Well, goodness we would love that we are hiring like crazy, ok. We are hiring again, look, we are looking for people who can. Let me tell you this, I’ve got a great group of people right now that are hungry and want to learn. We’ve already got that being dedicated and passionate is a must have so we’re looking for people that can mentor and we’re great with remote by the way. We’ve got some of the best towards… We’ve got several Cloud Foundry, Spring Boot, Java Microservices. We’ve got web applications right now in Angular 2 but with TCF, where you can put tons of different applications on there. We got Elastic, Mongo. We’re going to be getting into AWS with Snowflakes for analytics so we are looking certainly for those who have maybe, when they hear about Susan Fowler book and go, “Wow, that resonates with me,” or Art of Scalability and they’ve done some microservices work or some dev ops work. You reach out to me, jeremiahivan@linkedin. You can see some of my background and we will get chatting. We are good at remote. We’ve got investment and what we really want to do is build a team that you will be proud of and code that you’re proud of.

Carlos: With that, we will also have your link to your LinkedIn so that people can get in touch and hopefully we get some candidates for you.

Jeremiah: I hope so.

Carlos: Well, Jeremiah I really appreciate you coming on the show. It’s been a wonderful interview. One of the key things for me about this interview was seeing how the lessons you’ve learned along the way. Not only the senior level stuff that you’re doing right now but also how you’re able to put together to and to like your previous experience plus the actual senior level work that you’re doing today, and I think that shows. It’s really exciting to have you on the show.

Jeremiah: Well, thank you Carlos. I really appreciate going over with you and I hope everything goes great for you this coming weekend.

Carlos: Alright. Well, thank you so much, Jeremiah. Hopefully I’ll see you soon. Maybe I need to come up and say hi.

Show Transcript

Carlos: No, no, you’re going to do great. We had in our pre interview you left me with a great impressions as to some of the work that you’re doing, and I stand firm thinking that it’s going to be a really interesting podcast especially because you are in an industry that it is very traditional. I’ve seen this in the aviation industry also which is separate from yours but where change sometimes come from with some more times so I’m really intrigue with your experience dealing with some of that. Alright, for those who don’t know you, tell us a little bit about your background and how did you get into tech?

Bob: Alright. Well, I grew up in the late 70’s early 80s when the Apple 2 was first introduced to the schools. I was drawn right to it. I enjoyed sports and all that but I really turned into the classic nerd or geek when it wasn’t very popular to be one of those, and just started tinkering around with the few of my friends at school. We were lucky to have two or three Apple 2s and we also had a dial-up to the University of Minnesota so we had a different couple of flavors. After I graduated High School I went to College for Computer Science for a couple of years. But life in college just didn’t fit very well for me at that time and ended up moving to Arizona and get married, had a child, got to get working, but always stayed in contact with computers, try to get jobs that evolved around computers, had a lot of computer operating data entry. But always programming on the side to had a Commodore 64 that I hack the death on and just before about the mid 90’s I started really getting into jobs that really tailored me into computer programming. I got my big break with Trek Bicycles. They interviewed me and brought me up to Wisconsin as an RPG III developer but I didn’t really have a flare for writing reports. They had a software that needed the top… in their laptops and warehouse computers and start getting into VB 6 and FoxPro and those old technologies, and ended up moving up to Northern Wisconsin and working for and AutoCAD reseller customizing AutoCAD. I think that’s actually when I realized how to be a developer. We did a lot of customization consulting where companies are buying AutoCAD but we didn’t understand the process of that. My business manager myself got into Extreme Programming – the book, and it really opened our eyes on how to really get into the Agile process, storyboarding, understanding what requirements really worthy weren’t tombs of documentation is taking weeks to write. We are a lot more agile. We became a lot more comfortable. Unfortunately, that business they decided to shut down that business. But it created a huge opportunity for me because the clients that we’re done just don’t needed me so I ended up having my own business for a few years writing custom AutoCAD solution until AutoCAD caught up with me and was able to produce a lot of the innovations that customers were wanting. I then got into consulting for many years. I had a couple of brief stints with some companies as a full time employee but the recession hit, outsourcing hit, became very… and it was a rough couple of years… a lot of contracts, a lot of different technologies, a lot of different environments. Well, it was very frustrating I think taught me a lot about, and couple of years ago after some health issues and stuff I decided I really would like to become a full-time employee again. And Schenck was looking for senior developer, took the role and I turned into their architect and I’ve been very happy for the last two years here.

Carlos: What is Schenck and what does the company do? Tell me a little bit about that.

Bob: Ok, well Schenck is an accounting firm. They are one of the Top 15 in the U.S. It started 1950. We have about 600 employees with 8 locations, and we do a lot of tax return audits but we’re also branching in to a lot of other services like HR, payroll and consulting services. We are really trying to roll our service business as well as doing tax and audits the traditional accounting model.

Carlos: And how does engineering play a role within the business? Maybe we can zoom in into your particular role, what do you do within the company to support the mission of the company?

Bob: Well, I’m the Software Architect, I assume that role about 6 months after I get here was the company had gone through some engineering turnover before I got here. The CIO left like a month after I got hired, so our small team was very, “What would we do now?” My manager said, “Well, we need direction. We need standards. Bob, you’re the guy.” So my first role was to understand what our team was and what we needed to provide Schenck? So there was a lot of history, done within our software development. There was a lot of overpromised and… of things and so a lot of people are expecting much so I kind of came up with a mission statement for our group and it goes might be a little bit. Here it goes, “Create a living system that responds to the internal usage of a business and its users. To place quality above all else but include ease of use, maintainability and performance as indicators to meeting the needs of our end users.” And as you said, we’re a traditional industry and we have a lot of people that have been doing accounting for 4 years and they are doing it by paper and they have admins that enter stuffs on computers. We also have a lot of new blood coming in that are used to mobile phones and sort of technologies. We have a varied technology user base and trying to, you know, the old guard controls the company while the young guards trying to control the company and mixing those technologies so that, as I said, they are easy to use and it meets the needs of the users. Some of that challenge is knowing what that usages intended to be.

Carlos: So as you join the company, I could tell you’ve made some changes but how much progress in change of standards have you made? And if you could talk a little bit about your stack today, what are some of the technologies that you are using and what were some of the technologies that you found when you started over at Schenck?

Bob: My first big initiative was to understand how we were dealing with our source control and I was hired on as a kind of a mix between TFS aligning TFS Server and the old guard wasn’t sure where they wanted to go. Well, I like TFS. I grew up in TFS. I’ve installed it multiple times, it’s really not the tool for me and I’ve always wanted to have more of a continuous integration process. I was given the go ahead to do that and I wanted something that was going to create automatic builds and move our stuff from environments and that was the other thing that was missing. We didn’t really have the development environment, a QA environment and production environment. It was sort of develop and produce and I needed to get that out of people’s mindsets so I created a GitLab Server on a Linux Box. It’s the only thing that’s running on Linux Box everything else is Windows here. Installed a version to Jenkins on a Windows Server and now we are able to automatically check in, deploy all automatically to all our environments. There are some tweaking that’s need to be done. That was a huge step and it’s funny in the many years that I’ve been a developer it’s something I always wanted and it’s really the first place I’ve really been able to achieve it. I’ve had pieces of it but never been able to put it fully together. And I was lucky enough to have the freedom to do that so that was the first big thing. The second biggest thing I did was we were a huge Microsoft’s shop. We did everything from VBs, C#, ASP.net, MVC. There was this even some attempts at SharePoint. Had a lot of mix of the technologies we need to standardize that. When I first started, we stayed with the .net stack where we found ourselves handcuffed by a technology, by the client-server communication and sort of like a pingpong table with the ball bouncing back and forth between the client-server who’s responsible for this and that or the other thing and it was slowing as down. And I started thinking about it about 9-12 months after I was hired here that we needed a lot to be more flexible. We had to have a better UI. Our consumers, our accountants they are not technology geeks. They wanted to be able to get in and out of the applications. And I wanted to create controls that were easy to use and flexible but quick to build as well. And started working in more of a JavaScript solution, looked at a lot of the different frameworks. I looked at Angular 1, was really excited about that and we started doing a couple of projects as kind of a task, and started moving away. The other big thing we did is we kept the backend as C#. I found a services library called Service Stack and we kind of went into micro services. Not full true micro service but small databases with a service each for the lone database, and we’re building a warehouse from the backend and now I can build a service in an afternoon so we gain a lot of speed by switching both. Then towards the beginning of last year Angular 2 started making a huge gain and it was sort of, “Well, we stick with Angular 1 or do we move to Angular 2?” And we kind of pushed our chips even though it was still in beta. We’re not even been in beta. At that time it still might have been in alpha. I said, “Well, we need to start learning this.” And while we’re not going to create projects we’re going to keep up the speed with Angular 2 because as soon as it gets released we’re moving to it. When RC3 got released with Angular 2, we had 3 or 4 months to really study it. I’m not been a big fan of all the changes during the release but we’ve kept up of it and I still think it gives us the most flexibility on the frontend and do a lot of powerful and easy things. I love the TypeScript. There is a lot of things I love about… everything has it’s pluses and minuses but for this and what we’re going to be moving towards in the future I believe this stack is going to work for us.

Carlos: I’ll ask you a couple of questions too about some of the variables for picking a framework. But I’m curious, how much autonomy do you have when it comes to making this sort of decisions. It’s sounds you’ve got a ton of leeway when it comes to sort of how the keys looks like.

Bob: Yeah, I have the keys to the kingdom. That’s one of the nice things that, when I started here I was thinking as a consultant and my boss has come from the consulting world as well, and he said, “Look, this is yours. I’m hoping you’re going to retire here so you should make this your place. And instead for asking for permission, do it. You have the keys. I want you to do it.” So I was very blessed with a boss that understood my experience, understood that I wasn’t going to make rushed decision. I wasn’t going to jump off ship at the first sign of trouble. But I also took a lot of time and expect that they’ll give me to think very long and hard before I made decisions. I think with my experience in the things that I’ve done in the past lead me to understand that I don’t need to make a decision right today but I know I need to make one. And I see these things coming that’s going to impact this framework, or this pile of technology, or these are the things that the company is talking about trying to move or I want to move the company to this. So yeah, it makes a lot easier that I don’t have to jump through a lot of people and convince a lot of people that this is the way to go but I think they’ve given me the trust and the respect to say, “He’s done this in the past. He knows what he is doing.” And when I do present them to people within the group or outside the group I have thought about it for weeks or if not months, and I understand the pros and the cons. And say, “Yes, but or I understand that but we may have difficulties here.” But at the end of the day Angular 2 service stack, the micro database is this is how this is all going to work and here’s why, and be able to answer those questions and say, “Yes, this might be a problem but this is how we’re going to solve it.” Obviously, I’m not going to be able to answer every question or every solution that I don’t know about. But I have a very good understanding of it and like I said experience plays a big key in that.

Carlos: Right. You do bring a breath of knowledge because of your background. But one of the things that I wanted to concentrate on is the evolution of the company. How a company that is, as you said, very traditional, not only the how but also a little bit of about the why. Maybe at a high level, so I think I want to try to outline it for people that are listening to the show that might be in a similar situation. How they go about thinking or selling some of the ideas, maybe selling is their own word but defending some of their ideas to leadership or to the business? The two things that businesses care about are usually the bottom-line like the dollars at the end of the day but also adoption or keeping people retention, and a couple of other factors. What are some factors for Schenck that are important when it comes to making such this sort of decisions? Do you have to talk about financial ROI? How do you aim or how do you angle it when you propose something?

Bob: Well, the one thing that I learned when I started at Schenck. I should say there are two big things here at Schenck and I think one of them is almost across any industry and that is process. We have a accountants that love Excel and paper, so everything goes in Excel or it gets written down. As a developer, that’s data that’s sitting there not getting used and we’ve tried over the last couple of years and continued to try to get these people to understand that that data needs to get stored digitally. You’re sitting on money. And once you start talking like that, that could stir attention. We collect a lot of data from our clients. Now, that’s confidential data but that doesn’t necessarily mean that we can’t for example on our trucking industries say, we’ll we’ve got this company over here, we’ve done their audit and we have company B over here, we’ve done their audit. Companies are the same dollar wise. We can compare their audits and say, “Well, you’re spending 20% more in services than this other company that’s why your bottom-line is less.” That data can then relate to us to going back to our clients and saying, “This is how we can improve your business.”, which of course then make Schenck more money where we are offering more services. So again to your point, yes, the financial reward of doing this is a strong key. The other nice thing about Schenck is we’ve kind of gone through. Well, I shouldn’t say we’ve gone through. We’re beginning a culture of revolution and we’re kind of lucky that leadership has take down on a role let’s say, yeah bottom-line is important but how we are treating our employees and our customers is just as important. And they believe they’ll actually make more money in the long run if they kind of step away from this very traditional way of doing accounting, and that help our selling point. A few of the programs that we’ve written in the past 6 months have supported this initiative but it still goes back to them understanding that it’s the openness of the data. And whether they are collecting it for their client or for the firm is if we can then now compare that data, share that data that gives us much more ammunition to support our clients, bring other clients in and all that. It’s still a tough sell because again somebody had been doing this for 10, 15, 20 years, they don’t want the ways. You know, change is very hard but exposing the data, exposing business taking three weeks where we can automate that within a day or two. Those types of whens help us get momentum to make everyone trust as some more.

Carlos: How about in terms of retention. I know that in our previous conversation you mentioned that it’s something important for you guys. And do you think that by picking something like specifically Angular 2 and with TypeScript. Is it part of your decision making that fact that you can probably retrain previous engineers who did not know Angular or people that aren’t more familiar with a Microsoft stack as you guys worked before to adopt something like Angular JS with Typescript. Does that tie in somewhat to your retention goals?

Bob: Yeah, actually we’re in the process of hiring maybe one. Well, definitely one, maybe two engineers and the interviews that we’ve had have peaked engineer years because we are, it’s not just that we’re progressive it’s that we’ve got reasoning behind our progression if that makes sense. It’s not that we’re going to Angular 2 because, “Oh, look it’s all shiny, and new and everybody at Google is talking about it so we must do it.” It’s not that at all. These are the reasons why and these are the applications we see that the business either wanting or needing that are going to help support this framework. So it’s a hand in hand thing and when we talk to engineers we look at the people that we already have on staff. These are the opportunities for you to grow within your career. You don’t have to jump, “Hey, I’m going to look over here because they’ve got this.” We are constantly trying to evolve with technology and the business. Unfortunately at this point we’re pulling that business along. I think that’s good because it makes them rethink some of their thoughts on how they are doing business but it also allows them to go, “Look we’ve got this gold mine of data and resources that we’re not tapping into.” Well, here are the tools that we’re going to do to give you that and the response we’ve got in the interview process has been very positive and overwhelming. The unfortunate part is that we’re getting a lot of different levels of engineers and you’ve got to find that bit of .NET and JavaScript. I think that’s were TypeScript really comes into a nice place is he knows C#. TypeScript is right there with it, and you’ve got that object-oriented, you’ve got inheritance, you’ve got all those solid principles that an object-oriented language already has, and it’s so taking somebody from a .NET background that understands these principles and apply them into now JavaScript is is a huge win and that’s one of the reasons why Angular 2 is very attractive to us.

Carlos: Tell me a little about your projects, kind of project delivery and thinking of projects as the fuel that feeds our engineering groups. Where do projects come from at Schenck? With that in mind I’m thinking of, you said you’re talking to the business, but are you talking to like senior level people too, are you talking to more junior level people in the business? Where do projects come from?

Bob: I have to admit that Jeff Child, my manager, is a great business analysts and he’s in front of a lot of the leadership as well as sort of that mid-level group that actually does the work because upper management is going to have the idea that middle management is actually doing the work. And he has a great ability to kind of all that process or that processed data out of both groups and say, “Well, here we are. We’ve got his issue. I don’t know how to solve it but both groups understand that this is an issue.” And at this point, like I said, it really is us pulling the projects out of these people because they’re not seeing the value of custom software. They are not seeing the value of if I click on this there’s my client data or I don’t even know what client data I could use. So a lot of that is pulling and then us selling what we can do with that information, and that’s is our current struggle with projects. Some people are like, “Why don’t you wait for somebody to request the project and then we’ll put the process into place.” Well, unfortunately that just doesn’t work here because like I said they are not sure what they want. So Jeff goes in, does the communication, brings it back to me then we both go and we start talking to these people and say, “Well, what do you really want? What are really your pain points? Why is this the problem? Why are you putting this on paper? Why are you putting this on Excel? And start really asking this questions and you can start, as we have more and more of this conversations. We see lights come on and they start going, “You know, we did this with this. Can we do that with this process too?” And so it starts that snowball effect of now they’re starting to come to us a little bit more and saying, like I said, “You did this with this. Can you do that with this? This is kind of similar.” And we really hope that that really becomes more of a norm than us trying to go out and get the work.

Carlos: That is definitely something that I’ve seen a lot in terms of working with companies, especially through with internal teams where you know that you could help them but sometimes they don’t know how they can be helped. Just because of that cultural disconnect or maybe that mentality, I don’t know, like this for the past 20 years. So I think that’s something that you’re definitely close to kind of solving especially through this product in process. What are some product project examples? Maybe you can give us, at a high level, just for context.

Bob: Well, like I said, Schenck is going through some cultural changes. We are trying to change so one of the things that’s been a big initiative is goal setting and having a teamwork mentality. So we’ve written software so that people can create their meetings, create meeting notes, create goals, get progress reports based on achieved goals, you’ve done your goals. The last big thing we did was for the shareholders, the owners of the company. One of the unique things about Schenck is we have a CEO but we have a lot of shareholders who basically owners. We have 60 some owners of the company, so they have to create their goals. So they really bought into this process of the goal setting, achieving these goals, reaching out to their team members and coaches and getting that dialogue. So it’s been kind of a nice process not just writing the software so it allows them to do that with ease, and we’ve got that data stored but it also shows that it’s permeating, that whole concept just permeating the whole company. Our next big thing is now going, “Ok, now you see what we can do. Let’s get more data in front of you so you can start doing more client observation stuff.” So we’re looking at doing some dash boarding and that’s really more on the Angular 2 I think is really going to try in for us.

Carlos: It definitely sounds like to this big transformation you’re just getting started, so what’s in store for you for the future? I mean, you and I talked a little bit briefly about this even like what does it look for you in the future? And without asking what do you see yourself in 5 years because that’s the bit of the question, right? But what do you see yourself in the future? Where do you see taking this company and kind of your vision for that?

Bob: I think that’s a good way of putting this, it’s my vision, and I think I’ve got to have that mindset especially like I said in the beginning, I’ve got the keys to the kingdom so to speak, and that is accounting. We’re not going to get the whole unless we merge with another accounting firm. We don’t get a whole lot of clients. You know, people have accountants. They don’t change accountants very often. So getting new clients does not more of we making the money it’s servicing our existing clients and getting the data, you know, keep referring to that. But I think that’s the future. I think what we have today is what’s going to make us succeed in the future and streamlining that figuring out what our shareholders, what our account directors, what our accountants need to help service their current clients and making that process smoother and easier to deal with. I’m almost kind of concern that I’m going to let the floodgates go through in the next 12-18 months because I think once they kind of see the power of a desktop on their laptop hopefully going to mobile. Getting that information quicker, sooner, on demand where right now it’s very still, very static and very what we do last year instead of what can we do next year. Kind of flipping that whole mentality around of how we are presenting the data and how it’s consumed is my vision. And I’m really hoping we can do that but I also am afraid of that because with success comes more pressure.

Carlos: Right, and you’re going to have a lot more work.

Bob: Right.

Carlos: Well, I think we were able to talk about a little bit of, again, some of the work that you’re doing to transform and modernize a very traditional company? Not only the “what” or the “how” but the “why” I think is extremely valuable to give anybody else listening to the show. A bit of that context so that they can do it themselves. So now I have three last questions there more towards you, maybe some personal advice from you. What advice would you give your younger, less experienced self?

Bob: I think to find a company with a culture and software team that you can learn from. Love, I mean, love the work that you’re doing. Love the technology that you’re in and be yourself. You know, being expressive or being able to speak up. I think a lot of times in coming in my youth I took what was available without thinking of what am I doing. It’s a job, I got to have a job. I wish I would have been a little more patient in choosing some of the opportunities that’s coming about are those reasons.

Carlos: What’s a book that you would recommend on some of the topics we discussed today? Or any book that you would recommend?

Bob: I would say Code Complete by Steve McConnell. I think that’s developers’ bible. There’s a lot of great books out there but I really think the best should be in the first book you read and should always go back to look at it to refresh yourself.

Carlos: Alright, we haven’t had that recommendation on the show yet so that would be the first. We will have that on the show notes. Now the most important question is, so you said you’re hiring, so how can people find anybody who is interested in learning more about Schenck? How can they find you? Maybe they want to email you or they want to send you a tweet or something. How can they get in contact with you, asking you questions? How can they find your work and how can they find Schenck and apply.

Bob: Ok well, you can obviously go to schencksc.com. If you’re looking for a position you can put me down as a recommendation. A little bit of bonus if we hire you. The best to get hold of me is usually through LinkedIn. I don’t have a GitHub account because most of the program that I do is for internal use only. A lot of the consulting gigs and stuff that I do is proprietary owned software. And the things that I do on the side are usually for proofs of concept or trying a new technology. Is this going to work with that and it’s not really complete so. Well, I have a GitHub account it’s not really that great. I have a Twitter it’s @venthr I follow a lot of developers and software and Angular people on Twitter. Those are the three best ways of doing it or you can email me directly at my company is bob.dorris@schencksc.com.

Carlos: Alright. Well, make sure you guys if anybody is interested in applying at Schenck that you put Bob’s name as a reference, Bob Dorris. Plus it’s always better to have somebody in the inside as a reference. Well, Bob, I want to thank you so much for spending some time with me today and talking a little bit about all the things that you’re doing over at Schenck. I wish you all the best and I think you’re doing amazing. I can’t wait to hear, you know, what’s the next year or two look like for you and the Schenck team.

August 4, 2017 / Comments Off on Technology Where Technology is Secondary

Show Details

In a company where technology is not the product, Fernando Chilvarguer leads his team through the behind the scenes world.

At The Bay Club Company, the main mission is hospitality. If he is doing his job correctly, Fernando says the tech he provides will ultimately make the user experience seamless for the user. Technology is essential, its the pipes the business runs on, but the user doesn’t know it.

As things are hurdling in to the future, he hopes to implement more predictive behavior, making a more personalized experience for each user.

Find out how Fernando manages his team of software engineers in a business where technology’s main role is to support a non-tech business.

Show Transcript

Carlos: Fernando, my friend, thank you so much for coming on the show. How are you doing today?

Fernando: Great, great, thanks for asking. How about yourself?

Carlos: I’m doing well kind of we’re recording this at the end of November so we’re in this couple of weeks that a little weird in terms of Holidays and such so getting past the turkey coma.

Fernando: Yeah, it’s always a little rough, three straight days of turkey.

Carlos: It’s one of those because you eat the day of then there are leftovers and then you end up eating like three days the same thing. But anyways, I won’t complain.

Fernando: No, no that’s great.

Carlos: Alright, Fernando so tell me, one of the things that I always ask for I guess as a way to get you to break the ice and for everybody listening into the show get to know who you are. Tell me a little bit about your background and how did you end up at The Bay Club?

Fernando: Ok. You know, without trying to date myself too much I am a kid of the 80’s and it was an amazing time growing up. You know, technology was just starting to get into that acceleration. If you think about it it is all low tech but you had the walkman and you had unencrypted cordless phones, and then we had the first computers and all that. So I really started in 1982 when I get my first computer and it was a Commodore Vic 20. I like to call it the poor cousin of the Commodore 64 if someone is not familiar with the Vic 20. Back in the days, one of the big ways you’ll get software was you’ll go to a newsstand and you would buy a magazine and there will be source code and you type the whole thing in. So if you would like to play a new game and the game would come as source code in the magazine you’ll type the whole thing and you spent hours and then you play the game. And of course you would store that into a cassette tape and more than once it happened with you forget the volume of the cassette tape and all the recording gets distorted that you can never retrieve your source code again and there it goes hours of typing. From there, you know, the traditional path, Apple 2, CP/M, IBM XT, and on and on and here I am, so I’ve been doing that for a while.

Carlos: Well, you definitely did that yourself because I don’t even know what you’re talking about. But it’s fun. I started in computers in the very early 90’s, like 1990, something like that so maybe a couple of years after but it was back where we had games in DOS essentially. I remember having to load Windows 3.1 for the first time and I had something like 15 disk drives in order to load that. In fact, I remember Windows, the first version of Windows after 3.1 which of course I forgot. It was also something like 20 disks drives in order to load it into the computer, same with Encarta Encyclopedia. That’s probably the one I remember so with the early days.

Fernando: Yes, the one that I remember the most in terms of number of disks was WordStar. I don’t know if you remember that word processor, same thing like 15 disks or something and you keep on changing them. I remember those days, software update, they came in the regular mail. You didn’t just download a patch, you had to wait for a diskette to arrive. Things got a lot faster nowadays.

Carlos: So for content building, one of the things that I think is interesting is some of the work that you’re doing at Bay Club but what does Bay Club do? I think it’s interesting to highlight that Bay Club is not a typical tech company but there are a lot of technology behind this non-tech company. And I think that’s going to be a little bit about the heart of this episode is going to be around that but what is Bay Club, and tell us about the company?

Fernando: Ok, so Bay Club is in the hospitality business. We have 23 locations all in California. We have about 90,000 members right now. And although we are mostly known for our fitness operations because that’s how the company started, we like to think to do we’re much more than that, like we are a family destination. We don’t want people to come to our facilities just to work out and leave. We want them to bring in their partners and their kids and spent the days with us. We have full service restaurants, we have full service spas, golf offerings, tennis, we have children’s areas. And as you can imagine each one of those operations requires systems to run that, so there is a lot of technology behind it. Maybe the most glamorous type of technology but all those businesses within the business needs to function and all that stuff needs to roll up into this unique view of our member. If you’re using our restaurant or spa or golf, all that information ends up in one place. We need to generate a monthly statement at the end of the month. It doesn’t matter what you do. All your activities are consolidated into one place and we try to make it as smooth and transparent as possible.

Carlos: Very cool. What I find interesting is that you guys are using technology to solve some analog problems because if you would you have to log the people who are reserving a court that sort of thing. I think that a lot of us in technology are not thinking about that type of real life interaction with technology other than. You know, what we consider something out there like an Uber or you order something on your phone and all of a sudden get delivered in your house. But I think it goes way, it doesn’t have to be only like startup type of things. You guys are also doing it. So, as your particular role right, I want to get an idea of what is a VP of Engineering do at The Bay Club and maybe we can start there before we can start talking about the actual different units that we can talk about at The Bay Club. Let’s define your position.

Fernando: Ok, so primarily I had the whole software development department. I’m responsible for all systems running inside the club and also make sure that all systems communicate with each other. That include all back of the house operations type systems like CRM, ERP, Club Management, Finance, but also includes all the member facing systems like the website, mobile apps, and things like that. Our ultimate mission, our ultimate goal really is to improve the overall experience that our members have our clubs. Because again, we are not really a technology company from, you know, technology being our core product that we sell. Technology is helping us on our offline world so that experience is great. So if we do our job correctly is very transparent. We are not, and technology is not in the way. Ideally people forget that they’re dealing with technology pieces when they are ordering a drink at the pool. If they are thinking about technology at that point we’re probably not doing something right. The focus there should be their enjoyment on the pool and their ordering that drink but not the app that is allowing them to do it. I guess my role as VP of Engineer is lead the whole team on all systems both in-house and purchase and systems integration and everything.

Carlos: One of the things we haven’t talked about is your team. You have a team, so how many people do you guys employ under your leadership?

Fernando: I have 5 full-time people, and about, it fluctuates a little bit between 5 and 8 part-time people. The part-time people, although they don’t have 40-hour a week. They don’t rotate a lot. We use the same people for four years now. It’s just that they are not committed 100% to The Bay Club. But yeah, that’s about, let’s say a dozen people. Some working more than others that is the whole thing. Again this is just software. That does not include IT infrastructure for the club, like phone systems, networks. None of that stuff so we’re just talking software right now.

Carlos: Of course we are only talking software, that’s right. It is a larger operation in that. And the interesting, where are all these people located? Is everybody co-located or is everybody remote?

Fernando: Yes, everybody is remote. The whole team is in Poland and even within Poland they are not really in the same city. So, you know, Skype and Slack are our best friends. They’re been our best friends for almost three years now, that’s our primary means of communication.

Carlos: What are the things that we talked about in our pre-interview something that I thought was really interesting about, you know, something that I notice that you a have a passion for was how you thought of people. Like your vision of people in the value. Now there are companies consider people just a cost factor that produces a certain value or revenue and then once these people reach that point. Let’s say they could be seen as used up, warm bodies, now they can be replaced so this sort of thing leads to various strong separation within the team and people. What are your thoughts on this?

Fernando: You know, I have pretty strong thoughts on that. And one of the things that I really don’t like is when conversations starts about people and turns into conversation about resources. It’s like people becoming commodity and the fact is in reality it’s so far from that, right? So a skill set maybe a commodity, right? So does this person knows Java or does this person knows Angular? The skill sense a commodity. But even if we have two completely different people, the same skill set for Java for example, they are not the same. You can’t evaluate their output just based on their Java skills. They are both at 8. They are complete people, right, so how does this person interact with some other team members? Is this person pleasant to work with? Is this person happy? I mean, that’s a very important point or the people that are working with this person also happy. When you are talking about cost, there is like I think the tangible cost, “Ok, this person cost me X and now it takes that many hours to deliver this module and this is how much that person costs.” Or people like to say resources which I hate that word. But what I try to do is take a step back from this granular view of one developer contributing with this specific skill set and look at how my teams perform. You have to have a mix of skill sets of course but also the right mix of personality, the right mix of leadership. It’s a very complex thing. If you are working with those people, at least 8 hours a day every day, you’re probably seeing them more than you see your family. It’s not just about skills. It’s not just about hourly cost and it takes really hard work to assemble a good team. Let’s not even take into consideration my competition here in the bay area. I compete with Google, I compete with Facebook for resources and this is one of the reasons why my resources or my people are in Poland. It’s hard as a non-tech company in the bay area to get people that are very interested in the industry. They don’t as just as a job but also a part of this team, in this mix that we will be productive. Once you find the right mix of people in the team then things move along as 1+1 = 3, right? People help each other. People support each other. Sometimes a person is having difficulty with one area and you wanted the other team members to help that person to be sympathetic of that person, and not just this whole everyone for themselves, and I’m trying to get my promotion, and I want to show this. I guess the point is people are different. They are all different from each other and technical skill is just one facet of that individual. And to create very good productive teams you really need to look into everything else. Once you have that working, very hard to replace. So yes, finding another Java person, fine? Find the nice match inside your team that’s very hard.

Carlos: A question to follow that up and I know that you’re very passionate about this. But how do you keep a remote team happy, not only remote team but one that is geographically so far. Let’s say they were all working from home in the bay area you could take them out have a lunch so that team cohesiveness. But are there any steps you consciously take or you plan for every year in order to keep your team tuned up. How do you keep a remote team happy?

Fernando: Well, I think two things, on a daily or on a weekly basis I make sure that the meetings are not always just about the project at hand. You have stand up meetings and we’re only discussing a specific task and a specific, “Ok, this is what we are achieving this day or this week.” And that I allow for really just what are cooler talks. So we start the meetings on time but if the beginning is a conversation about something that was in the news last night, you know, I let the conversation happen. I think it is part of it. And people are laughing, and people are having a good time and when that happens I definitely don’t interrupt. I think it’s one of those priceless things that you can get. Like you said, they are all in different places where we just have this virtual office when we are in Skype. And getting people just to relax and having real world conversations is like great. I wait till that ends then we can talk business. I think this is time well spent. And it does help because people get to know each other at a personal level and not just, this is my co-worker and we need to deliver this project together. Again, that’s on the weekly basis or day to day basis. I travel and go visit the team twice a year and that’s when we do it more formal summit and we make sure that we have plenty of social time together because that’s the primary reason. Most of the work itself can all be done remotely on Skype, so for me to be there in person is really to not only to force me to be there but also we get people from all over all the different cities. We are all on the same place physically together and we spent a week together and just interact and have a good time.

Carlos: That sounds really fun. That’s actually something we want to start doing because we are also a distributed team. We’re all over the U.S. and we have two employees in Brazil as well so I think doing. I’ve met mostly everybody that we’ve worked with. I actually haven’t met some people that we’ve worked with. But I think one of the big things is doing kind of a yearly or a few times a year type of get together.

Fernando: Yeah, that’s very important.

Carlos: I’m going pick your brain about that one some time.

Fernando: Sounds good.

Carlos: Compared to a traditional tech company and a traditional product company as well there is a sort of process on when you’re deciding like frameworks and tools and dealing with technical type. What it is the process of deciding on say picking a tool for your team? Is it a team effort or do you pick and choose based on your knowledge? How do you deal with that?

Fernando: It’s a mix. The team is definitely is involved, very strong on hiring people that are smarter than me so I should listen to them and their opinions about it. The team know they are free to express their opinions but they also know they’re expected to come up with the rationale behind them not just, “Oh, I heard this framework is great”, or you know, “Oh, I like this framework or that’s the new thing.” Tell me why we should use it. And that usually is the team together listening to those justifications. Also I prefer to pick the objectives first before the tool. What is the primary objective of this specific module or micro service? Is the primary concern security, or is the primary concern having a sub second response. What is the best tool for this specific job? Now, granted that our core team has a specific skill set. We happened to be primarily a Microsoft shop and so C# is pretty big and we are too small to do like Netflix would do which each team is responsible for the end to end life cycle of a micro service. Pretty much can decide on the tool they’re going to use, how they are going to deploy because at the end of the day it’s agnostic. The micro service will exposed it’s API and we will talk to other micro services and who cars what’s behind the black box. But they can do that because of just the scale that they act. They have 1,200 developers and countless teams. I have one team so we can’t really as much as I like to say is the right tool for the job with constraints because we can’t afford to really retrain or change too much. It could happen if the justification is there for, “Ok, with this specific project we absolutely need this tool.” Where none of us really know much about it that we need to look for the correct person to help us. I’m open to that but it will have to be a very good reason behind it so right for the job with constraints. It’s all you can get on a team that is so small.

Carlos: How do you prioritize, say something like working on technical when say management wants a given feature because of the arrow I potential. How does that decision get made?

Fernando: Well, sometimes it’s not up to me, that we start to get into budget meetings and my justifications to senior management on how the money will be spent. I can talk about allocations for training, allocations for just keeping up the speed of what’s happening on research. The only way for us to know different tools for the job is to research and figure out if they would even be appropriate for us. That’s takes time and every hour spent on doing those things there is cost associated so what I try to do is shield the team from most of it. That’s my job, so I try my best to serve my team and allow them to have that training time and research time and I deal with it behind the scenes to do that. So that’s my fight and I think primarily what I do is really trying to shield them from the minutiae of budget negotiations and specific goes. But you know it’s a balance too because we don’t sell technology. We sell memberships and hospitality and ultimately that’s where the business is and the revenue comes from, so I need to be very aware for really nabbing box into the tech for tech sake scenario where you get caught into, “It will be great if we could use this technology, that technology.” But how does that benefit the business ultimately. I think a great example of that is the difference between the real tech person and tech/business person is someone spending a full week fully optimizing this website and take the average response time from .8 seconds to .6 seconds. It’s 20% performance improvement. You know, “claps”, yey great! Then you ask the person, “Would the user clicking on that website ever really feel that difference?” Probably not, so that’s where you have to draw the line. It’s like, yeah, it was very fulfilling for you as a technical person to get a 20% squeeze but that didn’t add anything to the business. So I have to be the maestro there making sure that time is spent wisely and not on things like that. Although I personally as a tech person love to see how did you do that?

Carlos: You have to have that balance.

Fernando: There has to be that balance, correct.

Carlos: This is the last question before we jump into our last segment but what are you excited about? What are you working on that is exciting for you? You know, is there anything exciting going on for the next year for 2017 that has you kind of excited looking forward to it?Fernando: Yes actually. We spent most of the last couple of years cleaning the back of the house. I came in to The Bay Club, one of the main directives was to, “Ok, go look at all those DOS base systems and all those things we have in the closet and clean the house.” We are finally at the point I can say 90% clean. The house is clean which means now we have usable systems and data behind the scenes that are going to enable us to really start focusing on member facing apps. One of the areas that are really exciting for us is starting to get more into predictive behavior, so a good example of that is just analyzing our members’ past behaviors when it comes to booking tennis courts, or golf tee times, or buying clothing at our pro shop, or whether they eat at the restaurant, all those things. Until now all that data was in their own silos, and we’re trying to bring it all together into this nice data warehouse that now we can store it and really analyzing past behavior to predict future behaviors and then try to suggest services to members before they need to think about it and a cross reference of those services too. Until now tennis data is in its own silo, and gold data is in its own silo. There is no cross reference. There is no complete 360 view of a member. And we’re trying to get into 2017 all that stuff to be together, so I know that you usually golf on Thursdays and it is Wednesday I haven’t seen a booking from you. But I also realized that your children they are on a summer break. Maybe you didn’t book because you have your children so maybe I should send you a push message reminding you that there is space available for child care if you want to book your golf. Things like that that will improve the member experience, the fine line between magic and creepiness from people like, “How did they know?” You got to be very careful there but at the same time the pleasure of just not having to think about. It’s like, “Oh, really, ok. I’ll book this service”, which is non-aggressive. We’re providing, enhancing the service and we’re increasing the bottom-line. We’re getting more revenue if our facilities are being used more. This 2017 there is a big push to use all the data that we have in the back to start getting more, doing more magic on the member side.

Carlos: Something that is kind of interesting is, you said tennis and I’m thinking, wait if they offered stringing services or racket stringing services that you could say like every 4 or 5 reservations you could say, “Hey, how are your rackets? Do you need maybe restringing?” That’s interesting. I think that’s really smart. So Fernando, I have three last questions for you. What advice would you give, this is usually how I ask it but I’ll rephrase it a little bit. What advice would you give your younger, less experienced self, but in the same way what advice would you give a manager who is just starting as a manager, right? You’re VP of Engineering, you’re an experienced manager, so what’s an important piece of advice for somebody who is getting started in kind of the management side of equation.

Fernando: Ok. I think the most important thing is to listen. Listen and be humble especially when you’re joining a new team and as a manager. There are usually two scenarios, you’re joining a team that already exists and you’re going to be managing people that don’t know you or you got hired to build a team. But let’s say the scenario where you are just joining a team of people being on the company for a while. I think the best that you can do is don’t rush. You should first understand how everything works before trying to change things, right? Everybody starts a job and they have ideas and, “Oh, I’m going to do this and this and that”, which is great after you stop to listen to people for a while. You know, wait two weeks, wait four weeks. Understand who the players are in your team. Understand the dynamics between them again back to, they are people they are not resources. Understand past limitations of why things were done a certain way instead of just, “This is stupid.” People love to just jump in and, “Who did that? This is stupid”, without knowing the context. Maybe there was a reason, maybe there was a big limitation at that time when decisions were made. That’s why things are the way they are, so I think if as a less experienced manager you take your time. Like you don’t have to, “Week 1 I need to show that I’m working.” Get to know the team. Get to know the environment and only after that you can say, “Ok. Now, I can make recommendations. I have enough information to make changes and recommend changes and things like that.” Because otherwise you may box yourself in the corner even before you have the chance to do anything productive people just hate you and you’re out. It’s very hard to come back from that. I think that would be my suggestion.

Carlos: Alright. What’s are some books or what book you would recommend on any subjects we discussed today.

Fernando: There is a book that I finished last month that was really interesting. It’s called Your Brain at Work by David Rock which is not specifically a tech book. It’s actually a book about your brain but it’s very interesting to understanding not only yourself but other people on physical limitations of your brain on, you know, how many things you can at the same time? What triggers certain brain reactions like to the core of being an animal, right? You’re human being and there are things that we like to think we’re in control but we’re really not, that we are just an animal and we have a brain and there’s things that are just inherit to that. So it’s a very interesting read to start understanding people and understanding yourself in terms of how to be productive based on your understanding of how your brain works. Plus it wasn’t a brain book for non-neuro scientist. It was a very nice read. I would recommend that right now.

Carlos: Awesome. We’ll have that on the show notes. And now, Fernando, how can people find you and find your work? Let’s say if they wanted to, if you were hiring people find. Yeah, how can we get in touch?

Fernando: Yeah, I think right now probably the easiest would be LinkedIn. I have a very unique name so if you just type my name on LinkedIn I will probably be the only match. I would only ask that. If you want to come at me on LinkedIn, mention the podcast so I don’t just discard that as a spam or random request. But yeah, if you mention the podcast I would absolutely come and chat. Yeah, that’s probably the best way. Now a lot on GitHub lately as of be managing and not coding for a awhile so you there won’t be a lot of code samples of mine actually. That’s scares my team when every time I threaten to commit code, they get scared and they rebel so I used that as a weapon, “Ok, I’m going to start coding”, and they’re all, “No, no, please don’t. Please don’t.”

Carlos: That’s funny. Alright, well Fernando, man I want to thank you so much for taking in time to chat today. I think it’s, as I said in the beginning, I think one of the unique things about you is that you’re very passionate about what you do, about the people that you do it with and I think we should have more of that in the tech scene. You know, it’s not just warm bodies but it’s real people and on top of that you’re improving a brick and mortar company that as you said doesn’t sell technology but you’re empowering and growing the company and even improving the bottom-line through technology, so I want to thank you so much for taking the time to chat today.

You’re here because you want to learn how to improve the angular performance of your web application. Your client would like to see the app load quickly on their rusty computers and you’re not sure what you should do. Continue Reading…

June 12, 2017 / Comments Off on Inside the tech stack of an insurance company

Today we have Thomas Price on the show. Thomas is a Director of Engineering at The Standard.

During this episode we talk his engineering experience, what makes his job so special and the environment he’s working in, like the migration projects he’s doing and the changes in IT that are happening within The Standard.

So, without further ado, let’s welcome Thomas.

Show Transcript

Carlos: Alright, Thomas, thank you so much for coming on the show. How are you doing today?

Thomas: I’m doing great! Thank you very much for having me on your podcast.

Carlos: I’m very excited. I think you have an interesting story and a very unique progression and you’re in a unique industry that is seeing a lot of modernization, if that’s the right word, so I’m really happy to have you on the show.

Thomas: Thank you again.

Carlos: Tell me a little bit about your background and then tell me what is this Standard. I know the name of the company is Standard Insurance so it’s pretty self explanatory. But how did you get there and a little bit about the company.

Thomas: Sure, not a problem. Well, let’s start with where I began my career which was working for LSI Logic, now called MedApp and there I was just writing firmware for storage racks. After a few years there I moved on to look for a company called Covidien that is now called Medtronic. And there I made a switch to become a developer in medical devices. I spent quite a few years in medical devices, digital health space, like they really started there. Well, Originally I started doing firmware development and some application development or desktop applications. And then after some time I wanted to become a manager and moved in the leadership roles so then I started to take an MBA and Covidien was very supportive. They supported me in paying for my tuition and they made me a manager before I even completed my program. Very supportive environment so that was great. But at some point when I completed my MBA I had found an opportunity in the Bay Area to start working for a very exciting company called Proteus Digital Health. There I took over as manager for firmware development, signal processing and mobile development, so still we’re moving up the stack a little bit there. But mostly there I was worrying about wearable devices, and there the exciting thing that worked on is they make these patches that can discover pill ingestions having happened, that’s kind of where the signal processing comes in and kind of communicate back with this little chip that gets powered by your stomach acids and starts communicating back. We’re developing that and that was very exciting. But the Bay Area was very very expensive, a lot more expensive than I anticipated. Even though I had I got myself where I thought was a very good salary. I had a lot of trouble finding good place to live and ultimately my family didn’t want to move out there, the parameters I had available to them. So after about 6 months I had to move back even though I had a lot of fun working for that company. But there what I experienced, because that was kind of my first exposure to UX, and it was a really state of the art UX. They had some amazing talents there in UX development. I also got to really understand what is being valued in the digital health space and when I came back to Covidien or Medtronic. I kind of sought my position open when I came back. I understood that industry was kind of, from a digital health perspective was really heading into a more connected space. And so I wanted to get more experience further up the technology stack. So when I went back I’ve taken over the old firmware group and I’ve taken over an application development group that is developing software for monitors that are sitting in operating rooms, and we also worked in mobile development and things like that. But I started to become more interested in the integrated spaces. The cool thing that the architects that I was working with were developing was, and there my first exposure was a domain driven design. And that was kind of the first place where the concept of dependency injection was introduced to me and they used this framework called DDS that was a middleware for real time systems to kind of interconnect. So they work on a spool thing where a nurse could just walk along the floor and her monitor could immediately connect to any device that were sitting on top of this DDS framework and it will just display by proximity so that’s pretty cool from the work out.

Carlos: That sounds very interesting. So just two things that you brought up kind of in your story I know we haven’t even gotten to The Standard yet and we’ll get to it. But, and something that I want to pull out just to make sure that we touch on is management. Why you were very clear that you want to become a manager? And that’s why I think is interesting in this trajectory is how you went through the trajectory of an engineering role to a management role. Talk a little bit about the difference in terms of your responsibilities and what that looks like? So before we jump on that tell me a little bit about your current role at The Standard, and again I think the key question is how does engineering plays a role within the company.

Thomas: Sure, so I’ll take a step back and I’ll kind of explain about The Standard a little bit. They are split up in more than just an insurance so technically the company is called StanCorp Financial Group and they have a Standard Insurance company that’s part of that. They provide things like Individual Disability Insurance, Group Life Insurance, Dental Insurance, things of that nature. But we also have parts of our company that focus on investments and on retirement services, the one you think about passing on, things of that nature. And then they also do some mortgage investment. And the reason you need IT for some of these services is because when you think about, let’s say company x signs up for The Standard services then that company needs to be able to manage their employees through some portals that they’ve made available for themselves. And those employees then in turn have to then manage their benefits for their investments. So all of those things require software for the companies to manage their employees, or the employees to manage their own investments and benefits and you kind of work from there. That’s where you kind of need that software to, the people back to using the products that you’re offering to them.

Carlos: Got it, so technology is supporting the business getting business done if you would.

Thomas: Right, and obviously as part of any IT group we always provide internal services as well. The primary focus is always this line of business, I call them products that we offer our customers in order for our customers and their employees to manage their benefits that we offer.

Carlos: And what is your role as Director of Engineering cover? What’s your area of focus?

Thomas: Sure. So I am not part of a line of business team. Meaning I don’t write product specific tool for example the retirement services group or our employee benefits group. Those groups might specifically write a product that the customers who are using those products are interfacing with. But I am in charge of a group that worries about the front end platform development, the interface integration development, or application security development. The common services that everybody might have to use regardless of which product they use. So if you think about front end platform everyone have some branded representation of our applications that they’re interfacing with. So even if you’re writing a retirement service product or you’re writing an employee benefits product you kind of want it to look the same way and to be built in a scalable way since then true of enterprise integration and we’re connecting back to our integration databases. We want those things to be built in a scalable way. We are a very large company with a large customer base so what’s important is that all of the things we built are built in a scalable way, in a secure way, in a resilient way and everything else that you have to consider.

Carlos: Right, and why become a manager? At what point or what was that made you think I want to be in management, in a management position? And what type of manager do you consider yourself? And I kind of think I know the answer. But are you a people manager or are you more of a technical manager?

Carlos: So the reason I chose management as a track for myself because I sat down as a developer and I realized that’s a trajectory that I could follow was that’s going to be capped or the ceiling I would find with how much sooner around engineering side given my skills and aptitudes. So what I wanted to pursue was the management track and the reason I take an MBA because I really want to understand the business side of things. Because at some point when you go from first a manager, to a director, to a VP, to a CTO. You have to really understand the business as a whole and financial is more than just technical pieces. So I try to balance those things as well through education and through my day to day practice as well. But as you can see I have been a fairly technically focused manager in certain way lately. That is to get the right kind of understanding across the entire technology stack. When you really think about you need to tie back. I’ll just take a step back to my digital health spaces. You need to tie this wearable device that is sitting in an infrastructure of thousands, hundreds of thousands of wearable devices. You have to tie all that information back into one infrastructure on the backend. You really have to understand all parts of that so that’s really what I want to try to understand. But I’m also, you know, have done my due diligence to understand business aspects to try and be a balance kind of a leader and taking appropriate leadership classes that the company has offered. Companies like The Standard, companies like Medtronic have offered me very good opportunities in catering my leadership development on top of that.

Carlos: What’s the biggest thing on your backlog if you would? If you think of your priorities as a product backlog if you visually organize that way. What’s the biggest thing on your backlog and how does governance affect that?

Thomas: Sure. The biggest thing on my backlog today is something that I’m working on with my frontend platform development team. There we’re switching from IBM WebSphere Portal to a more modern UI framework. Some degree it’s my team and the architects who are working together to move forward in that full direction and to figure out the roadmap of getting all these legacy applications. Like porting the WebSphere Portal infrastructure unto this new modern UI framework. We’re definitely not the first company that has done this. There is quite a few of them before us. As you can see in this business of insurance, for management it’s not just about risk management over on the insurance side. It’s about risk management across the entire company so it’s much more measured in a conservative approach in choosing one to move forward on things. But that’s why they kind of hired me in. They are ready to make those moves and it’s an exciting time for me to help the team move things forward from ways I’ve seen that implemented during my time at CDK where I was doing enterprise software development to try and re-apply them here in moving the technology stack forward.Carlos: So because you have that some of that support from the top, does that kind of tame a little bit of the governance in terms of like what you are able to implement back into the system.

Thomas: It does to some degree, yes, because the reality is that the business realizes if we stick on these old technologies, carries some of these in that some of these technologies and maybe we’re on older versions of them or where support is coming to a close. And so we need to make sure we are consistent on moving the technology forward to make sure we don’t exposed ourselves to security vulnerabilities or to products that are not being supported any longer, and the business supports us in that. On the other hand, the regular governance gates is still there, if you’re proposing a new technology position, you know, you’re switching from WebSphere Portal to another technology then we still need to bring that up to the Board of Directors and architects and justify the decisions before the assigned office is made.

Carlos: Got you, and now the technology that we’re talking about, I think in our pre-interview you mentioned Angular 2, right?

Thomas: That’s right. We are moving from, we have a general philosophy and try to move more open source technologies, lighter technologies. When I talk about the modern UI framework we’re thinking about things like Angular 2 with Bootstrap and using Micro Services sitting behind that. That’s kind of the direction that we’re taking right now and we’re right in the middle of this process of POC in some cases and other cases, partnering with ongoing projects to have them lead the way.

Carlos: Got you. What about Angular 2 kind of fits within a large organization would you say?

Thomas: What Angular 2 brought to the table was it had some fixed first of all that Angular 1 had weaknesses in. That’s king of the React versus Angular 1 back and forth kind of came from. Things like in Angular 2 now we have components that have clearly defined inputs and outputs. There is no scopes or hierarchies to kind of circumvent that so when you’re building out your entire infrastructure of. In my case, I have some reusable common services that I have to sit in the middle of that. And I have it all sit together that’s now easier to implement. Then the other thing that Angular 2 introduce for us was this server side rendering which is nice for the publicly facing portions of our website, for SEO purposes, also for concept of use, things of that nature. And things like TypeScript just aren’t a concern for us. A lot of people come from like this Java, C#. They’re not coming necessarily from just JavaScript so that wasn’t really a concern for us. It actually provides structure which we like and so all of those things together were really nice. On top of that, aside from the technology pieces when we were viewing technologies there are Gartner articles for example where Gartner did a very in-depth analysis in comparing technologies like Backbone, React, Meteor and Angular 2. We can kind of see the Angular 2 is leading with deployments of top 100,000 sites, leading in Stack Overflow questions kind of indicating that amount of activity that’s going on there. They are leading in job postings if you’re just looking at Indeed page alone. And while React and Meteor are growing fairly quickly, Angular and Angular 2 are growing quickly themselves whereas something like Backbone which was going a really good direction seems to be trending down across the board. When we do that analysis we kind of consider all those facts and Angular 2 seems to be a good for us in that.

Carlos: So how much of a factor is TypeScript really? I hear a lot of people that are definitely kind of sold towards because of it. A lot of Windows engineering organizations who do a lot of work in a Windows stack historically do prefer Typescript for one reason or another. How much has it been a factor in terms of selling the technology to your management?

Thomas: Actually to management it’s been sort of a non factor. When it comes selling it back to the architects and to the engineers that better be good influencers and decision makers. It has been a positive thing. There hasn’t been too much pushback because again we have some JavaScript components obviously to all of our frontend pieces. But people that are just relying on just their pure skills in making JavaScript work just perfectly and trying to circumvent some of the things that experts trying to get you be more disciplined about, those are things that I haven’t really seen. I mean we sit on top of something like WebSphere Portal so obviously we are looking at structured things to begin with. It was a good thing actually.

Carlos: Got you. So what variables would you consider have had a lot of weight? If you could pick out like, and I know you mentioned a bunch of a second ago a lot of the ones that Gartner kind of brought. But what did you use particularly kind of a case for Angular 2 internally? And by that I mean like variables that sold it to your management or to your directors.

Thomas: Sure, so Angular 2 was one of the frameworks we could use that was focused on single page applications therefore can be targeted at more mobile responsive development going forward. And on top of that it’s, Angular 2 itself introduced a lot of new features as I talked about, with sort of side rendering where components having clearly defined inputs and outputs, lazy loading of routes becoming easier, and being able to find talent in the area which I felt very confident in just spent my time at CDK, that is actually a shop that develops in Angular 1. I just felt pretty confident in the architects have done their due diligence as well and so when we gave the pitch it was pretty positively received. It went through its governance spaces and it’s a good route for us.

Carlos: Got you. Now when do you think there is kind of enough evolution? And I think you are in a unique position to kind of think of that because you’re in a large company that has to have a lot of variables into consideration. At what point do you think we have to think of evolving to a new technology but also what point do we say, “You know what we got to stick to what we’ve got for a couple of years, we’re going to stick to our guns because we’ve got so much product work to be built and we can’t release if we keep on adding more technical depth.” How do you balance those two things out?

Thomas: Sure. By the way this was a very real discussion we had over at CDK where we had very forward thinking people who could come up with new interesting technologies for us to work on. But sometimes it became too much for us to take on something new and it wasn’t clear why we were taking it on. And so at that point you have to take a step back and you have to ask yourself, what problem am I solving? That’s the very first thing you should ask yourself. For example here at The Standard we are solving things like mobile responsiveness across our whole web portfolio. And we’re solving things like sitting on top of WebSphere Portal which was an aging platform that is somewhat falling out of flavor here in the industry. It’s probably too heavy to what we needed in our technology stack. But then if I go back to CDK for example then I think about they have all of their technology stack on Angular 1.4 or whatever it happen to be on. And they have this continuous integration implemented almost across the board with very good technologies that we’re working from there. To make a switch from one technology to the another technology and something that’s working thoroughly well pretty close to state of the art then it may not necessarily makes sense to make that jump to the next thing because it’s providing you incremental benefits but maybe not enough to justify the amount of work you’re taking on that the business will consider non valuable.

Carlos: Right, because you’re just adding more, I mean in a dirty way. I’m calling it technical depth. I’m just adding more technical work that’s not going to result into actual features or product or as you say value back to the business. Now, how does something like hiring? And I’m asking you and particularly with Angular 2, you mentioned a second ago that it was very important to you guys to find talent. At what point does talent become a major factor?

Thomas: From a management perspective it is a factor right away, right at the top for me. From a discussion standpoint, so not pursue technologies where I may have trouble hiring in people. Let’s take this back to the decision of Angular 2. It was a discussion point and for us maybe 6 months from now is we’re going to ramp up on things and we need to hire in people. Maybe we can afford to teach some people that are familiar with Angular 1 or some other technologies in that realm to help them move forward with Angular 2. But if I’m trying to hire across the board or trying to shift the whole organization over, you have to think twice about if you want to be this early in this transition or if you want to have some other companies maybe pay the bills to maybe teach people Angular 2 nuisances so then you can take them on later on in that process.

Carlos: That is smart. I never thought about it that way, that to wait a little bit just so that other people can train those people back to you. And I think that this is kind of why is this interview was interesting to me because we got to talk a little bit about, again how, when you started your work as an engineer and now the variables on top of the decisions that you’re making as a manager. And I think that again this is kind of what we need to learn from one another, so I have three last questions for you. What do you see yourself in the future? Right now you’re in management and you’re doing a lot of frontend work. What interests you and where do you see yourself? And I say “where” by the way I’m not talking about company. I’m talking about like subjects. What interests you and what do you see kind working in the future in terms of new material and such.

Thomas: Sure. At this point I try to pursue things that challenge me. That I haven’t necessarily fully work in yet or haven’t been able to drive such large change like at The Standard. That part was very interesting for me here. At the same time I’m out at Meetups. I sit on the Technology Association of Oregon’s Technology Leadership Committee to kind of understand what’s following up next and to see what is of interest to me there, and if there is something that is interesting I may volunteer with that. I may participate in other ways and see what comes around. Digital Health is always interesting, hot topic out there in the industry. I have had just quite a few years in that space but, yeah, for now I’m pretty happy trying to move things forward with The Standard and they’ve given me interesting challenge to work with then I’ll see where it goes from there.

Carlos: What’s a book you would recommend to some of the people listening in; a book maybe that pertains to some of the subjects or something that you read through your career change, and I say change but more of a career progression?

Thomas: Sure. Now, obviously I have to do a plug for your book, ng-book 2, very good for us in our Angular 2 transitions within technical perspective. There’s that but over on, speaking to my transitions, I had quite a few transitions as you can tell so there I would say the book called “The First 90 Days” has been very very good for me. Every time I go through transition, even if it’s an internal transition from one team to another team or from one position to another position, re-reading the First 90 Days has been critical for me to balance myself, to create a plan, to re-ask myself questions that I need to ask myself to approach the new situation that I’m with, so I would highly recommend that book.

Carlos: The First 90 Days, we will have that on the show notes and I’m going to check I out myself. There are a couple of books I re-read all the time and whenever I hear somebody kind of have those sort of books it always interest me because I’ve find myself re-reading a couple of books every now and then. Now, how can people find you and find your work? And if say they want to get in touch with you directly, maybe they’re interested working in The Standard, also how do they apply and most importantly how they actually get through the noise? What’s the way to get a job with you guys?

Thomas: Sure. Well, I would say first of all if you need to contact me I’m on LinkedIn. I believe I have the Thomas Price URL under LinkedIn. That’s one place you can find me and on top of that The Standard has standard.com page. You can apply there. In some cases maybe you can search me out if at least IT specific positions. If you have some alignments there maybe there is a way to reach out to me. But in general I would encouraged you just apply on the page, maybe track down one of our recruiters which shouldn’t be too hard to do. Otherwise, you can always find me at events around town even Meetup events like NewTech has been one on the Portland area, and Technology Association of Oregon events just because I participate actively there. That place is where you can find me as well in person. You can catch up with me there.

Carlos: Alright, Thomas, my friend I want to thank you so much for coming on the show. Once again I think we’ve got ourselves a wonderful episode. We talked a lot about a couple of different subjects that are interesting to both engineers that are looking to, again that are thinking of a managerial type of track, and also for some of those leaders implementing some technology such as Angular 2. And with that said though, we love Angular 2 but at the same time we like React. I think there is not one tool for all situations. It’s like there is a right tool for the current situation. But it does sound like Angular 2 fits exactly what you’re trying to do. But anyways, I want to thank you so much for coming on the show.

April 26, 2017 / Comments Off on The day to day of a designer building web applications

Today, we have Mathias Burton on the show. We spoke a lot about the design process when it comes to building software projects, as well as his role at ProQuest and the everyday tasks as a designer.

So without further ado let’s welcome Mathias.

Show Transcript

Intro: This podcast is brought to by Gistia Labs.

Carlos: Thank you for tuning to Tech People where real life tech practitioners share their professional experiences.

Carlos: Hello everybody, welcome to another episode. Today, we have Matthias Burton on the show. This was a very interesting conversation. We spoke a lot about the design process when it comes to building software projects. Something very interesting about Mathias is that he is a designer but also a developer. He knows how to create his own designs or make them work if you would. So we spoke a little bit about his role at ProQuest and the day-to-day of a designer. I think ultimately this is interesting because shed a light for us technologists about the design process. So without further ado let’s welcome Mathias. Hello Mathias, my friend, thank you so much for coming on the show. I’ve been hoping to have you here for a while now.

Mathias: Yeah, thank you for having me.

Carlos: So Mathias, tell me a little bit about yourself and how did you get into software? I think it’s an interesting story and also a good start for us.

Mathias: Sure, so I started my career as a visual designer making websites and branding pieces for a variety of clients and agencies in Detroit. It was a good community of a design work out there. And I kind of found a niche in interactive media so I was really using technology more of like a creative tool than working on software if you that time. And around 2010 I began doing work using research in my design process in a more extensive way. And so I would say that’s when I started working in user experience. Then around 2011, that started to lead making mobile applications particularly right around that time that iPhone apps started to really boom. That’s where really I kind of introduced myself through. Then around 2013 I really switched to full-time leadership roles on new product designs from that and I started to have an emphasis more on web applications, and that kind of takes me up to where I am today. So now I’m actually managing a group of products rather than just a single interface.

Carlos: Just that’s something that is interesting during those times when the iPhone came out and mobile apps were kind of a new thing, right? Around 2007, I think it’s somewhere on there. A lot of people including myself, I said, ?Let’s keep our focus on where we are.” We do a lot of front end engineering but a lot of it is web engineering. Nowadays, of course, everything went mobile and I guess more on the consumer side of the equation. Again, everything is mobile, mobile, mobile. What made you kind of say, at that time, what made you see the possibilities of it when you decided to jump on? At that time it was a new bandwagon.

Mathias: Yeah, it’s an interesting story. It was 2007 when the iPhone came out and I was still in college studying design so with somebody that has an emphasis in interaction design what that really meant was I was playing with lots of technologies. So that meant boards, sensors and data collection and so when the iPhone came out it was kind of like this super iPod if you will, right? And so all of a sudden I had a technology that I could put things unto and I could know your location, and I could do a lot of different things with data that I never had before. And it’s really interesting environment to be in but as a student I didn’t have teachers that have worked in this media and were teaching me that. It was very hands-on and I had to explore and play with it a lot myself. And so when I got into the field more directly it really became about a need that customers had that they wanted to be engaging their users in this format and they had no idea how to do that. So I was just one of the few people that really could approach that media in an appropriate way and understand what it was actually useful for. There were a number of apps that came out in that time but not so many that work for clients and customers and they were much more business to consumers. Sp business to business mobile apps was not something really considered out I don’t think at that time.

Carlos: We have a lot of utility apps for to do lists, and mind you including the fart apps. I don’t know if you could remember that. Those were such idiotic apps but they still sold.

Mathias: Right, and this is the thing, there was just a bunch of crap that made early on and this is true like any technology. People are trying to figure out how it can be useful and how it can be functional and so I was just a part of that community of people trying to figure out what we could use this for and what was valuable about it and I think one of the things that was very common about that was the fact you carry it around with you. So it’s one touch points that you can have with a community of people in which everybody has it in their pocket. You can engage them right away. You can do things on the fly and you don’t have the same expectation of their context. Their context is constantly changing.

Carlos: Alright, so you’re working at ProQuest now, what is ProQuest? Give me a little bit of context for those who haven’t heart the company. By the way it’s sounds familiar for a bunch of people but at least it did to me when I first found the company. But what is ProQuest and does it do?

Mathias: Sure. We sell to librarians so one of the things that is kind of funny is when I to talk people about it is if they’re a librarian they notice right away. Or if they have done research in any kind of context in academia they tend to know us right away but otherwise we’re kind of a hidden company. So what we do is we archive and digitize content. In fact, I think we have like the past 250 years of newspaper data in databases that can be searched and discovered for researchers. And so we’re subscription based company and we sell to universities and other kind of interested parties. It’s a pretty decent size company. I think we have somewhere around a billion dollars in annual of our current revenue, something like that, but nowhere near the size of some of the larger people in our market like Alsaphire which is very big academic publishing company.

Carlos: So how does your role as a senior user experience lead kind of support that business? What’s your particular role and how does it support the company?

Mathias: You know, big goal of ProQuest is try to make this content more accessible to academics and to people doing research. And I lead a segment of products that we call researcher tools. And so I focus on workflow for advances researchers, people that are in their PhD, faculty at a university. As well as some corporate researchers that are doing work in say pharmaceuticals or medical research. And so I kind of focused on that workflow and I have three core products that I lead, design and research on which are called RefWorks and community of scholars. So my job is kind really just kind of understand the user’s needs, the people that are coming in to this apps. What they need from it, and then translate those to features. So I take a lot of abstract information make it more concrete. I collaborate a lot on strategy and planning so there’s a lot of close relationship with leadership teams as well as product owners. And I lead research initiatives in our company as well so much of this is me being out in the field gathering insights and collecting qualitative research data. On a day-to-day basis I do a lot of prototyping and usability testing and I also manage accessibility compliance so we fill out VPAT, WCAG statements that give our customers a good sense of how compliant we are with disabled and users that have an accessibility issue.

Carlos: For those who might not be in the design world, give us a little bit of a difference between visual communications, visual design versus what you’re doing. I want to get an idea of how some of your past work let’s say in visual communication influences your job as a UX lead.

Mathias: Sure, to give some context to like what I’m asked to do, my job is to make products easily to use. So as a user experience designer that’s kind of my role. I try to make them as the highest quality that they can be. My objective is to transform our market using technology and at the heart of that is kind of restructuring this workflow so it’s a really design challenge that I’m kind of faced with because things like research are really complex and filled with inefficiencies so I kind of seek out how to find better methods to do that. So that’s what I’m kind of task to do now. I got there in kind of a funky way just like anybody else in my discipline. Historically, design was kind of broken into two buckets; kind of product design or industrial design and then graphics design or visual communication so there were kind of the poles of the design field. There are some tangent things with architecture and built environments etcetera. But these theoretically how design was taught and so you can think of that as form and function. Right around 2007 when the iPhone came out we started to bring a new paradigm because graphic design elements started to become product designs. You know, you’ve got a flat screen and that interaction started to be considered as semiotic analysis. You were doing something on a screen in which somebody had to interact with and engage with and so you’re communication with the user directly, and so now those UX roles are really blurred. And at the center are visual concepts. It’s something as very much tied into that is visual communication through an interface, so ideas like semiotics and hierarchy they really play a central role in the process of kind of creating a user interface especially in new technologies and that’s the emphasis of my role. It’s figuring out what should be there and what we should be saying. I think the reason it works well for me is it’s not really well taught in some of the more traditional programs like HCI or something like that in school. That’s because I think those programs are just a lot more focused on function so I think people in those disciplines struggle to understand the role of form and how it makes its way into a user’s experience. But those concepts are really from each of their disciplines and I had to learn new practices in this world too. But in way I think the new practices that I had to learn were easier to understand than visual concepts. And so it’s just something that give me some kind of unique place in this market and certainly I’m not the only designer to take that path but I think I made that transition pretty naturally and it’s gone really well for me.

Carlos: So let’s talk a little bit about your customer base, the actual people who. Let me back track for a second. I know that you guys sell this to a group of people but it’s probably use by a different group of people so maybe there is some clarification. Librarians buy your products and researchers use them or both librarians and researchers use your products? I think that’s a preliminary question before I ask you my next one. Which is the right assumption?

Mathias: Librarians are our customers and I would say researchers are our users. We do have admins and so admin would be librarians that are users and so there’s kind of duplicate of fact there. Plus librarians study information science and do a lot of research on their own so they tend to be users of our product on their own too. But I’m pretty big advocate of my company saying customers are not our users. There’s a very big difference between the two and it’s important to say because it’s easy to focus on customer and forget about who actually is impacted by a design decision. User centered design practices which now being kind of appended by human centered design concepts but they are really similar. They really focus on the end user, the person that at the end of the day has interact with this interface and interact with this environment.

Carlos: So I think part of my question is around that is do you design for both types of people? I know that you’re very in depth in the sense of you do different things for different types of people in the design world. You tend to have use cases for each but in your case, I’m trying to get to an area of what’s the right way to do it? Teach us a little bit. If we have two types of users, how do we prioritize? For which user do we want to create stuff for? Is it the common denominator between the two or are there other variables that we need to be looking at?

Mathias: Actually, that’s a really great question because it’s not a super easy answer. I definitely would say prioritizing the end user should come first. I mean if you think of building technologies that you’re trying to empower someone to do something faster, right? You’re using technology to solve some kind of problem, right? So that end user is the most important because that’s the person whose time you’re trying to empower if you will. Now, how you actually get then to pay for that can come directly and like a B2C type format or indirectly and you sell like we do. We sell to a librarian that purchases tools for researchers to use. So I certainly still involve librarian feedback. In fact, I would be totally lying to you if I didn’t say that they don’t drive a lot of the direction of what we built. In fact, they should drive it. They understand researchers just as well as I do and so they interact with them in a different way and so I think customers and users are both important in your design process. But as far as design decisions how you’re going to actually create from and create structure on an application. You should probably prioritize your users who make sure your customers understand that. So you’re going to get information cascade if your focus on your customers giving you input about how this thing should work. I mean, that’s really kind of a dangerous place to be and a lot of companies fall into that pattern. This is where the money comes from so we’ll answer to what they’ll say and then ultimately nobody is happy because they’re paying for your product because it solves a problem for someone. So if you solve that problem less efficiently because you got information cascade rather than direct input from your end users, you really are at a disadvantage. I don’t think their feedback is not important but it has to be contextualized.

Carlos: We’re talking a little bit about two things. We’re talking about the design, we’re talking about the visuals, we’re talking about the how it works, the function and that stuff. How about the technologies? So before we get into the actual that you use and why tell me a little bit about how involved are you with picking technologies and why would that be important? Is it do you have a say and how important is that to the design process that kind of picking that technology?

Mathias: Yeah, another great question. Design tends to be a tech agnostic. At least design in the software sense. We try to solve a problem regardless of how it is functionally solved in way. Like we solve the what and allow development teams to solve the how. But I do have leverages especially the front end. It needs to be something that I can jump in and build something on. In our applications for example we use Angular in our front end development and that’s something that I feel comfortable jumping in and out of especially I need to prototype something and I think that part is very important. You know, design inside of your actual structure of your application is very different than the design of the application and I think that is something that is dependent on the software means and so that I think is much more internal discourse between developers and designers about what makes sense and how we might do this. And so I have a lot of conversations with our system admins and our software architects that really drive and organize that. So we have all our applications run or at least the majority of the architecture on AWS. We have a number of databases just dependent on what data we actually collect. So we use CloudDB, Postgres and MongoDB all for different type of data sets. And then really anything in between there is really dependent on who’s on the technology team. So we’re using things, Python, JavaScript, etcetera to solve different problems. But that part I don’t think I have as much sway in what we choose. I think that’s much more important to who’s going to be writing the code.

Carlos: This is interesting, I think this is not something we discuss but I’m just going to throw it out there as a question so how technical do you think is optimal for a designer to be, right? Because when you describe as you being able to jump into Angular and build something, it’s not something every designer can do in fact it’s something, it could be you could hear people say, ?Oh, it’s not fair to make us learn engineering or development.” But I think it’s a big power for a designer to be able to do development. What’s your take in this?

Mathias: This is a great place to think about design versus development and where I think they separate. Anybody that is working on a large technology team is going to get to use to taking very big stories, user stories and breaking into small small parts. In fact, on our team we sure to have every story be no longer than a day of work so that anybody can leave each day and have something completed, and that’s an ambitious call and so what you’re always kind of doing is deconstructing out the work into smaller parts and so it’s a very analytic process of making smaller smaller parts. Design is very synthetic and so if you’re trying to make something that solves the user problem you can’t ignore all of the things outside of your application that are indirectly defining what that application used to be. Those are all one and the same especially to your users, especially to people. In an ideal world, you would have a designer that would basically be able to build the entire application himself right from beginning to end because you need that mind to be unified, and it’s very difficult to bring a unified team together or at least a small community of designers together like 2 or 3 people collaborating. That’s around answering your question but I think, you know, you’re going to find designers have different levels of capability in technology depending on what background they came form but it shouldn’t be a limitation. I think one of the best partnerships I’ve had in my career and I think is something I have used to be giving up a little bit is having someone that focuses on frontend development working directly with designer. I think that relationship can guide your design decisions greater than any other. If both of those are working in a prototyping format and getting feedback from users and changing out designs based on what they say and what they hear. I think that is really a powerful space so if you’re a one designer on a team of 8 people and you don’t have that you’re going to be in a pretty bad spot if you can’t prototype with real code.

Carlos: I think it might be interesting to hear your opinions on the right way to get feedback from users to feed your back wall. We are talking here about inputs, translating them into a request for development teams. But at what point do you say, ?Right, this is what we need to do.” And how do you mean to sell it to the business for funding purposes? How do you say this is important for us to build because it’s going to hit the bottom line? And again, I’m just going about it like trying to shoot it up in the sky. So you tell me how does that type of process come about in the real world.

Mathias: Sure, it’s a really great question. You know, I think, well for one designers aren’t kind of magical person that comes up with things out of blue sky so, you know, and if they do it’s often really not directly related to someone’s real issue so that’s a dangerous place to be. So for me I think research needs to find its way into the planning process so when you’re instantiating a new project of any form. And it’s the same thing at ProQuest we have this process of what do we know and what don’t we know. There’s a lot of research that does exist at my company I run like I said a user research program and we do an annual kaitens where we have a group of users trying to answer more general and more broad questions that should guide some of our decisions over the next year. And in a startup company you need to be doing that every week because you’re involving yourself in a completely different context and you need to have every piece of information you could get. But for example we sell to librarians and researchers, There’s a lot of information about researchers out there. There’s literally researchers that study researchers and so there are dozens and dozens of articles on my users and I can read those and learn from that. What I really believe in though as far as process is is really having research that’s tied to what you’re interested in building. So we use a hypothesis validation cycle where we find questions that are related to our product and then we seek out users to input them. I think most of that work needs to happen before development even takes place. But sometimes it can be really nice to flip that so if you have an idea and this is where prototyping can be really valuable. If you have an idea for your product and build it in a reasonably short period of time, say a week, it can be very valuable to prototype that out and put that in front of users. And I think that feedback is much more genuine than a design camp that is flat and not an actual technology. I would even reference a book by some of the Google ventures team. I think it’s called the Sprint book. It’s really great example of like integrating design feedback into a really quick cycle. They set it up in like a 5day shoot in which they both concept and then build something to put in front of users and get feedback by the end of the week and make a decision or what to do.

Carlos: So will that depend on a little bit on traffic like for you to get actual measurable data?

Mathias: Yeah, I guess it depends on what part of your build you’re at. That’s more of like a new concept that hasn’t been built. If you’re doing something that’s within your product I mean you should always be looking at your analytic data. I work directly with a data scientist pretty regularly. You could find insights in the patterns and usage of your product and that’s something that you should then guide user interview questions around. That’s a little bit of a different process and maybe a more incremental innovation cycle would be like you evaluate your usage and find some sort of flow diagram or flow process that you didn’t expect that should lead to some questions you have and why people are doing that and then you go out and you find people that are in that user set. So a good example that I use with this is we’re able to kind of connect unique ideas from users to emails and so I will actually do my recruiting based on features that people have used that we have questions on. That’s somewhere where it’s a little bit different of an approach and it really starts with why is this happening in my product and then pursuing answers.

Carlos: This has been great. I think your point of view as to not only the result but also the process is, you know, where the value comes here because a lot of people are not cognoscente of the entire process. Sometimes it may be a little vague for those web designers that design is not a result but it’s a process. I think you’re able to explain that from the very first time you start talking. I love that.

Mathias: Yeah, I mean, I always describe design as a verb. And design is nothing more than a process. I mean there is the artifact that comes out the other end, you know, a screen or you have an object, kind of product, whatever you want to call that. It’s really the process you go through to get that that tells you how valuable that design really is.

Carlos: Alright, I have three last questions for you that are a bit more back to you. So what advice would you give your younger less experience self or this could be what advice you would give somebody just coming out of college that wants to be a designer in the right way. What’s some advice you would give some of us?

Mathias: I think probably a good place to start with this is just like not stop making stuff. You know in college, everybody gets into the technology world because they find it fun to make something, right? Then you get a job, and that can be great and getting a job is great but it’s a fun world that’s distracting. And it’s important to keep making things. If you focus on making things and being creative you’re going to come across some really interesting stuff. You know, my focus is on improving the human condition so I’m always looking and talking to people and trying to come up with solutions in my head and I put them down on paper as fast as I can. I don’t like to leave anything unmade. If I could have done that over the past 10 years I would have been 10 times more successful professional.

Carlos: Right, so you did mention a book a little bit ago but what’s a book that you would recommend on some of the subjects we discussed today?

Mathias: Sure, I really struggle to bring it down to two; I read a lot of books.

Carlos: You can do more than one.

Mathias: Yeah, that would be my other advice for you is to read a lot. Always stay up with more information and be ready to keep learning. One I think is the most tied to my work process today is Understanding Context so that’s by Andrew Hinton. It’s an O’Reilly book. So I work with just about everything that surrounds the interface. The user interface being what’s on your screen. Everything that makes somebody go to that screen is what I worked with and once they’re there and how they come out the other end. And Andrew’s book is really makes that idea more concrete. Takes a world that’s kind of never ending and put some boundaries on it. And that idea of going from something abstract to something concrete is really important. It’s all context, it’s good for kind of setting scope and ensuring your technology is adaptable and successful. But kind of tied to that I think I would recommend the book Icarasee which is really about helping people understand the relationships of tech in the underlying systems that they address. The author had gone to India and done some projects out there and he describes how the underlying systems were broken and technology really just amplify those problems rather than solve them. You really need to able to deal with these underlying systems that design addresses at the same time you need both.

Carlos: Awesome. I will have those on the show notes so that they can check them out. Also, how can people find you and find your work? And by the way if you guys are hiring tell us how can people apply to your jobs and what’s one way to get noticed if they want to work with you?

Mathias: Well so my website is just my name, mathiasburton.com. I’m pretty active on Twitter so if you just want to chat with me that’s probably a great place to find me. I do have LinkedIn and Github too. If you just google me I think I take up like the first three pages. It’s easy to find me that way. ProQuest is, I do believe we’re actually hiring right now. But if you go to ProQuest and just search careers I know they have a number of jobs posted all around the US. I believe they’re hiring in Ann Arbor right now. I’m not sure if they’re hiring in Seattle where I’m at. I think they actually close a couple of positions they had opened here. Yeah, check it out it’s a great place to work.

Carlos: Alright, Mathias, I want to thank you for taking time. I really appreciate you taking the time with answering all my questions and being able to kind of help us and give us a little bit of visibility as to what a designer of your stature and kind of your level does. Yeah, I appreciate it big time.

April 7, 2017 / Comments Off on IT in Education with Alan Ferrenberg from Miami University

Today we have Alan Ferrenberg ‎Associate Vice President and Deputy CIO at Miami-University and talks to us about his career and how the educational environment is working and evolving. We’ll hear about the ups and downs of university funded IT and how development and the university facilities have to work together on their quest to educate and teach people.

So, without further ado, let’s welcome Alan!

Show Transcript

Intro: This podcast is brought to by Gistia Labs.

Carlos: Thank you for tuning to Tech People where real life tech practitioners share their professional experiences.

Intro

Carlos: Alright, Alan, thank you so much for being in the show. How are you doing today?

Alan: I am doing great, Carlos. How are you doing?

Carlos: I’m doing fine. It’s been a bit of a hectic couple of weeks here. We had this hurricane a while ago but anyways it’s good to be back in the swing of things.

Alan: Yeah, it’s hard to find the time that isn’t hectic, isn’t it?

Carlos: Exactly, so that’s why I appreciate you coming on the show and taking the time to do this. So Alan, tell me a little bit about your background. How did you end up in software? Maybe you can give me a little bit of a story of how you ended working at Miami University?

Alan: That’s a long and twisted story. My background is a physicist. I started physics and actually got on the track to do software related things kind of by accident, a sordid tale back when I was an illegal alien that we probably don’t have enough time to dig into but I ended up of instead of getting a job, working for the summer for a research team that ended up winning the noble prize the next year, I got a job at a university doing some computer programming. And that kind of shifted me from doing experiments in physics to the field of simulation physics. And I went to grad school and I got my degree in that and was on the path to be a scientist in the area of doing computer simulations. But the dark side of the administrative kind of reached out and grabbed me and I ended up into a few different management roles. But all of them have a tie back to what I learned as a physicist so good problem solving, lots of number crunching. I had a chance to do lots of different leadership jobs in technology. I’ve been in this role over our solution delivery area for a bit more than two years. And it is a bit like coming home because I still do computer programming. I just do it in languages that we don’t use here at work. Some more numerically intensive stuff but it’s great actually of having some technical tie to what I used to do with the people who are working around me.

Carlos: Yeah, because I see there being kind of the similarity, the common denominator of you having a background in a university setting again in research and all that gives you a lot of that context. That’s what I’m trying to find. So can you describe a little bit about your jobs, right, it seems like, I know that in your title, in your position you probably have different jobs that you do. What are those?

Alan: I’ve got really two main ones. One of them is being the head of our solution delivery area and so we’re responsible for developing, supporting and integrating the administrative systems that are used across the entire institution. I’m also deputy CIO and in that role, I mean, what I describe it is my job is going into meeting. I also describe it as, you know, sometimes I have to poke hornet’s nests to get some things moving. And then sometimes hornets are really excited and my job is to calm them down. So it’s more of like a Chief Operating Officer kind of role for the IT Division so I try to make sure things keep moving, things get done and resolve issues that pop up.

Carlos: So you already kind of alluded to it, like what is day to day look like for you as your role as Associate Vice President and CIO are. What is the right term by the way? I know that you’re deputy CIO. What is your day to day look like and you can describe a little bit about your title. What is that mean?

Alan: For me there is no such thing as a typical day. You know, I can plan out about what 10% of my day looks like and the rest of it is being ready to address situations and problems that pop up. And so I’m kind of in a state of a cat-like readiness, ready to jump on issues that pop up. So I do have an operational unit that the solution delivery area that I look over, you know, responsible for the budget and staffing and overseeing the portfolio of projects we’re doing. In the Deputy CIO side, I do represent our CIO in meetings and other sessions when he is not available. You know, everyone has too much on his plate and so some of the things that don’t fit on his plate come down to me. So I get to work on just a huge variety of different problems. Lots of different situations, you know, luckily we’re not in health care so we don’t have life or death situations but we do have lots of urgent things that need to be addressed and I get to work on just a lot of different things and it’s different from day to day.

Carlos: I mean, you coming from a non IT background coming from within the education system itself. Do you thing that this affects your view on certain things you do with your job or how does it shape it?

Alan: I think it does. I view it as strength. I think the people are mad around me sometimes if you would as being a real pain. But I’m always looking for better answers to the problems that are popping up for us. Or if I don’t like a question that is being asked instead of answering it, you know, trying to find a different way to phrase it or to solve a different problem. I think that’s my background as a researcher has me always looking for opportunities because in research a lot of times you don’t know what to expect, and your job is look around you and find the answers that may be hidden somewhere. And that’s I think coming from that academic background bring to me and how it causes me to look at things a little bit differently.

Carlos: It seems to me sort of like your scientific background helps you not only try to answer questions but find whether the hypothesis needs to be validated, right? Think of it more like as a scientific type of approach.

Alan: Yeah, I mean you can’t do that too much because most of the problems that we have to deal with aren’t technology, they’re people, and you can’t treat people like they’re an experiment. It’s not always scientific but it does really help. It gives me something I can fall back on since I’m getting lots of different situations. I don’t know what’s going to hit me from day to day. So just that ability to step back and really assess what’s going on pretty quickly and come up with a way to address it helps me address those things that are just so different from day to day.

Carlos: So for those who haven’t worked in the academia per say and people that are listening in, again, a university environment is very different than a usual company environment. And I say usual baked under line because that could change between companies and companies but company structures are one kind of unique, not unique, but they’re different from the academia. Can you explain how it differs and how do you view that?

Alan: There are a lot of differences. I mean, one of them is, you know, especially a residential university like Miami University is. It’s like a city. So the university is providing a police force, and health club, and dining and all sorts of infrastructure and so we in a lot of ways are very self sufficient. But that just means we got a real diversity of services that we have to provide and a lot of them do depend on technology. I think it’s kind of unique in that we have a captive audience for our customers. Our customers are faculty, and students and staff of the university and we’re embedded with them. And I think that’s very different that if you’re out selling a product or creating a product you interact with your customers. And then often times when the engagement is done you’re gone. Our customers are around us 24/7.

Carlos: It’s like you’re living that environment and you’re part of that ecosystem. How do you say that that case is different from your role, you’re at Miami University versus when you worked at the University of Georgia? How different could two universities be, right? I’m trying to find like in the same way that we’re differing from companies we can somehow differ between universities themselves.

Alan: Universities are very different even forgetting about just the technology in what kinds of things they’re teaching so some maybe focusing on science or engineering. And Miami is a Liberal Arts school so we do have scientific research going on but not as much as at a school like University of Georgia. By the way, when it gets to technology there is a huge variety too. Some schools have almost all their technology provided by a central organization. Other schools have very little centralized and each department has its own technology resources. Most schools fall somewhere in the middle. Miami actually has a pretty good balance of reasonable size of central IT organization but some of our colleges on campus and even some of our administrative areas have pretty sizeable technology resources of their own. And that balance of how much is managed centrally versus how much is distributed really differs from one place to another. University of Georgia was much more distributed in terms of how it’s IT is managed. Miami is not extremely centralized but it differently is a bit more.

Carlos: So one of the things that we discussed at length I think in our pre interview here was kind of how projects differ. Like how the flow of projects between a university and let’s say a corporation environment. You know, kind of how that process looks like. So there’s a couple of questions about that so can you give us a little bit of an inside of how the IT environment looks like and by that I could imagine things like, how are projects prioritized. Let’s say whether you’re implementing a new system to manage and I’m just imagining here a product name or the Student Management System, right, the way that students sign up for classes. How does that get prioritized against other things? Where are those initiatives come from? How they get funded? And I’ll kind of prompt you for those but give me a gist of the big picture where are those come from?

Alan: Ok, well that’s interesting. And it is another way that we’re different from the real world. We’re non-profit so when you want to compare the costs and benefits of one kind of project against another we can estimate the cost the problem is that sometimes are benefits are hard to quantify. And we can’t use profitability as a deciding factor on what we’re going to do and what we’re not going to do. So it means that there is a lot more discussion than having a quantitative process in deciding what work happens, so a lot of discussion. We involve the Vice Presidents of the University getting together quarterly and talking about the strategic project request that are out there so they can give us a sense of those priorities because they don’t have return on investment. What is it isn’t something that we can easily apply to all of the projects. And then for projects that don’t really rise to the VP level we’ve got designees from their offices who we meet with monthly and have discussions about prioritization. You know not hard and fast set of actual priorities. One of the things that is a bit unique, and this is not true at all universities, but it is true at Miami that the central IT organization is our resources by in large are free. And so when someone has an idea for a project that they’d like us to work on, the people who are going to work on that are already paid for. And so we run into this problem, we call it, when cost is zero demand is infinite, and so people make request for projects way more than we have the resources to work on which makes prioritization even more of a challenge.

Carlos: So that’s definitely a different style or different experience than we’re used to in some of the companies that it’s almost like pretty funded by the priorities may shift as the year goes to do. So what are some of your long term goals that you’re trying to achieve? Maybe you can give us like a high level of what they looked like just to get an idea of the context without of course exposing anything valuable that you can’t share yet.

Alan: Just to clarify, goals for Miami or goals for me and my organization?

Carlos: I think you and your organization. Like what are some of the goals that you’re trying to hit and how you are going to hit those?

Alan: For me there is really one huge overarching goal and it’s that I know that we don’t have the resources to meet all of the institution’s needs. So my goal is to get better and better at delivering solutions to try to meet as much of that demand out there that’s possible, you know, we possibly can. And so some of that we’re looking at standardizing our environment. We have solutions delivered on a lot of different platforms and we’ve just gone through an architecture exercise to define what we want our state to be like and we’re starting to get things out of our environment that we really don’t want to be developing and supporting anymore. We’re focusing more on Agile project execution than waterfall because we are finding that we’re delivering better products faster that way. And then by simplifying our environment we were able to focus more training on a smaller set of tools so we’re tackling that. We’ve also spent a lot of time working on different kinds of jobs in our organization. So when I got into the role, we really had one generic application development job family and with even that it wasn’t very well defined. We’ve now come up with a better defined application developer job family and created positions that are focusing on application support and quality assurance. Also, we have a business intelligence area in my department and we’ve developed a job family with some of the specialized technical needs for supporting BI.

Carlos: So let’s talk a little bit about your teams because they are the ones that are going to be doing a lot of these work or that are going to be impacted by some of the decisions that you’re making. How do you buildup the teams in terms of maybe a little bit of career progression. How is that important for you? Do you just assign them to do project work or can they also kind evolve within their positions.

Alan: Well, when we get them on the actual project teams their main focus is doing project work but because some of these more specialized, you know, the quality assurance and our ETL analyst and application support that if people do have interest in that, you know, I’m very happy to get when someone finds an area they’d like to specialize in and we cannot only move people up but we can move them across into in a specialized area. We are doing some searches right now and I’ve got three internal candidates from our application development job family who were looking to move over to the BI area and to me that’s wonderful. That’s one of the reasons we developed these different parallel job families so that someone would have a chance if they find they want to do something a little different that they can do it and it’s still useful to us.

Carlos: What is the biggest pain that you are currently trying to solve? If you could pin point the one thing that you think would make let’s say the next quarter Q1 of 2017 the best quarter. What would that be?

Alan: We still have a number of vacant positions. One of the challenges working at a university is our salary structure isn’t always in line with the real world. You know, there are benefits to working at a university just being in this environment and people are willing to maybe make a little bit less to be in this environment but not too much less and so we’re competing for people who could easily go and down the road to Cincinnati and make 20% or 30% or 40% more than we can pay them here. And even Cincinnati has thousands of vacant technology positions so that’s one of our big challenges. How can I get my department fully staffed?

Carlos: Got you, it seems like definitely a tough challenge because you are playing again kind of it in a market. But I want to thank you because it has given us a little bit of insider to what engineering looks within an education organization especially such as Miami U. It’s very well known university and it’s really interesting to get an idea, at least for me, it was very interesting to get an idea of how that looks like internally versus your typical corporation. Now I have three last questions for you. So one is, what advice would you give your less experienced younger self, by the way outside of not taking your paths for in Zurich. Right? Was it in Zurich? Was it in Switzerland?

Alan: It was in Zurich, yes. Well let’s see, one bit of advice would be, you know, I once broke my leg throwing a stick to a dog and I would definitely recommend not throwing that stick. You know, on a more serious note, I mean the advice I would give my younger self is keep your eyes open. There is opportunity all around you to do great things. And things are not going to work out maybe how you planned but if you’re always looking for opportunity you get to do lots of really interesting and exciting things.

Carlos: I think that’s good advice, keeping yourself open to opportunities, and I think that’s important. Sometimes we get carried away with problems and things that we want to do that we don’t see opportunities that may not be as obvious to us. What’s the book you would recommend on technology, maybe a book that you’ve liked through the years that’s been important to you and your career?

Alan: Well, there is one and especially, you know, talking about universities and how they are different from the rest of the world but then how they differ among each other. There’s a book called ?Game Changers? and it’s edited by Diana Oblinger. She was the past president of Educause which is a national organization for technology and higher education. And it’s a book that has about 20 different vignettes from 20 different universities, and you can see how they differ in their approach to solving problems. But you will also the common things that we’re wrestling with, and so that’s been a book that I’ve really enjoyed.

Carlos: Alright, that’s a great recommendation. We’ll have that on the show notes. And now Alan, this is the last question, but since you are looking to hire and recruit for some of the positions. How can people find you, if they have any questions or they’re interested in applying for a job? Sometimes I know that in might be worth kind of talking to somebody before you apply to see if you’re a good fit. So the question is how can they find you, find your work? And if you have any job openings, how can they apply?

Alan: Oh, ok. Well, the main website for the university is miamioh.edu and there are links at the website to the, the university maintains, everyone has to go to this one place to apply for a job so our job which is out there. We do have positions open, in our quality assurance, ETL analyst, application support and in application development. So all four of our main job families we actually have at least one vacancy that we’re looking for right now. In terms of finding me, I don’t mind giving out my email address if you don’t think that’s too crazy because I am happy to talk to people about the environment.

Carlos: That will be great and for sure that only the few that are interested will. Everybody who you’re not serious don’t bother Alan.

Alan: I appreciate it. It’s alan.ferrenberg@miamioh.edu.

Carlos: Alright, great. Well, Alan, I want to thank you so much once again. I think this was an excellent episode. We discuss a lot of these points about the kind of the educational environment or let’s call it more the academia environment in technology. And I think we haven’t had anybody with your profile and with your breadth of experience you have in this. So I appreciate you coming to the show.

March 29, 2017 / Comments Off on Challenging every day tasks at GoPro with Andrew Maxwell

Today, we have Andrew Maxwell from GoPro! We talk about some of the challenges he had at GoPro and other companies, across the industry. He can give us a little insight in how big companies work and differ, and what the difficulties in the everyday tasks are.

So, once again, thank you for tuning in, and let’s welcome Andrew.

Show Transcript

Intro: This podcast is brought to by Gistia Labs.

Carlos: Thank you for tuning to Tech People where real life tech practitioners share their professional experiences.

Carlos: Andrew thank you so much for taking the time to the show. How are you doing today?

Andrew: Good. How are you?

Carlos: I’m doing great. I was just telling you earlier by the day that we’re recording this Apple just announced a couple of their new products and a little bit bummed about that but aside of that everything is going well.

Andrew: Yeah, I’m interested in seeing, I like the USB-C stuff that they’re doing so that part I’m interested in but the whole like adding all kind of dangles and stuff that you need to get the app mac working then it’s not that great.

Carlos: Yeah, that’s the thing for me especially if you’re, at least for us as engineers. We want something that’s just simple like… that you can take with you or whatever and then but you want to hook up anything. But anyways, I just want to thank you man for taking the time to come on the show. We’ve been chatting for a couple of weeks to make this happen so I appreciate your patience with some of the changes we had to make.

Andrew: Yeah, no worries. Glad to be able answer questions for you.

Carlos: Alright, so I think the first question just to get people to get to know you a little bit more. Tell me a little bit about your background and how did you end up at GoPro? Tell me that story.

Andrew: Yeah, the story actually goes back 2004. So in college I was actually doing animation, so 3D particle physics and stuff with python. I really liked it. And of the things for Maya is they actually had an interface where you can actually program in HTML and start building some of the tools to control the particle physics and other programming, so I really got into that. Then I had a friend that actually was doing some graphic design around the same time and he asked if I can help him out with the website, and ever since I’ve been doing it. I fell in love with the web especially with front-end portion of it. How it’s constantly changing and I’m kind of like a learning buff. So I love learning, pushing myself to a new technology and font-end web is actually where it’s at.

Carlos: Yeah, I think one of the things that are very cool about our industry is that we can learn as much as we want. It pushes us to learn but at the same time. It’s not like you need a license, right? You don’t need to be a doctor. For example you want to be a doctor. You have to have this license in order to do your job. With this, you don’t need that license. But you’re constantly pushed by yourself or pushed by the departments of your job to learn those new things. So having that sort of mindset is what got you (the job).

Andrew: Yeah, absolutely and I could say a lot of stuff for me is self taught so that the passion I have for the front end and then working with different companies over the years, working on projects, owning my own company. All those things led me to basically work with all of the modern frameworks so Angular, React, Ember, all that familiarity. Then building some of my own frameworks if necessary in terms of propriety frameworks and then now working at GoPro is been able to use that newer stuff, new modern technology and working with media so photos, videos, etcetera.

Carlos: Just before we dive into some of the other questions I have for you. So which of those frameworks? I mean, right now it’s not to me and I ask that from a point of like there’s no one better than the other at least for in general but there is one better for you, right? One that you prefer because of x, y, z. What do you prefer?

Andrew: Yeah, right now, my go to framework is React and that’s what we use here over at GoPro. Part of the reason why I like that is when you’re working with any other framework there’s properitary languages outputing or going to HTML and then there’s CSS and then move it all around along with the JavaScript. With React we were able to do 90% of our work so all of our HTML, the markup, the JavaScript, all is in a JavaScript file so because it has a lot more flexibility, a lot more control, isomorphic application so the same code runs on the server and client. And that allows us to have a lot less duplicate code and allows us to actually add context on the app that we’re working on. So not having the context switch every two minutes, two different language.

Carlos: Right, that makes a lot of sense. I mean some people would argue either way for other stuff but I see where you’re coming from. It makes a lot of sense for the type of work that you’re doing. Do you guys work also in a sort of functional approach? Do you guys adhere to that?

Andrew: Yeah, for most part we actually do and so kind of agree like it took me a long time to have actually fall in love with React. At first I didn’t like the JSX syntax and how it’s actually set up. And then after building the workflow and kind of framework that we have internally. It just made it night and day difference and the team can actually get cranking and building new features in no time.

Carlos: We all know GoPro and whoever doesn’t know what GoPro is just go and google it. But we know GoPro for your products, right? We know that you guys create these awesome products now even you guys got into like drones which I think is super cool. How does software engineering, how does like our type of engineering play a role at GoPro? Also the question is how does engineering impact the growth, the revenue or the organization overall.

Andrew: Yeah, so up until recently we only have different stack work so we have the camera app on your iPhone or Android. We have some of the Desktop app. But until recently, so end of September we actually have a major production release across the board so we had Android apps, iPhone apps, Desktop apps for both Windows and Mac and as well as web software. So pushing GoPro in the next hill if you will and start building more software related to our products so we want to be able to capture your content on your hardware so that the camera that you buy create it. So edit it where you want, make a nice little video and then share it with your friends and family and enjoy it. So that’s our big focus right now. We don’t want the content to live just on your camera and then forget about it. We actually want to be able to make that content available to you at all times and the share it with the people that you care about.

Carlos: Which is your favorite product with all the new things coming out at GoPro? What’s kind of your latest thing that you’re interested in?

Andrew: Yeah, are you talking about hardware or software?

Carlos: I’m talking about like the products that GoPro just released there or that it’s offering now in the market.

Andrew: In terms of hardware, one of the things that I’m really excited about is the drone. Obviously, it’s pretty exciting. But for me the hardware that I use the most of all of our stuff is actually that Session. If it’s in my pocket I would really go where it’s the beach to hangout friends and family and it’s so small I can just grab it, battery last for hours and I use it all the time. I wouldn’t think I would as much as I do.

Carlos: Yeah, I haven’t played around with that one but it just seem like it’s so versatile. Now, one of the questions that I always get is, you know, people tell me to ask. You know, people like you that I have on the show is like, what is somebody like you do at your company. So in your case what does a Software Engineering Manager do at GoPro? What is your mission? How do you for that mission and maybe you can tell me little bit at a high level. But then tell me like in detail how does that translate into sprint to sprint, delivery to delivery, that sort of thing.

Andrew: Yeah, absolutely. My role here at GoPro like you said is Software Engineering Manager. I’m focused on the cloud software so our web applications and web components. What that actually does is we have multiple web applications available today and we just launched them last month. So you can actually with a GoPro+ subscription. You can actually manage your content in the cloud, view it, share it to Facebook or Youtube or even create a hidden share which our private link called that. And that’s another feat of our software where we want to be able to share a burst or a time lapse. Media formats that are GoPro camera stake but other platforms actually don’t support. So one of the cool things that we created on one of my teams is private links, and that allows you to slap a bunch of media whether it’s photos, videos, or burst and share that to your friends and family with an obfuscated link. So Youtube, or Google Drive kind of link.

Carlos: So how does a typical development cycle look, right? Let’s say you’re working on a project. Give me a little bit of an overview of your kind of your cadence and that sort of thing.

Andrew: Yeah, so cadence is what we do is we actually plan out a few months ahead, a few quarters, right. And from there we get a high level idea and then we break it down into a PRD, a Product Requirement Document. And then I work with the product team as well as our core team which is a designer, a product person, an engineering manager such as myself, we have QA and we have dev ops for release. And together we flush out that product requirement document making sure that we know exactly what we want to build how it’s going to be broken down. And then from there we create user stories and tasks to be created. From there I estimate the work from a high level on terms of the complexity of the ticket what it will be and we use Fibonacci sequence. So 1, 3, 5 and 8, and from there I meet with my engineering team and then they look over the tickets. We flush out any additional information that they might need and adjust the priority of the tickets so if it’s a one, or a two, in terms of amount of work that’s going to be done.

Carlos: Got you. Usually in companies, different types of companies, project might flow from top to bottom. In others it might be bottom to top. How does this apply at GoPro?

Andrew: We actually do both so we meet with the team and we do kind of brainstorming so from the bottom up approach. Come up with ideas that we think might be really useful for the product in order to solve a problem. It’s usually solving a problem or filling a need. And so we do the brainstorming from our side from bottom down so some of the engineers, designers and product. As well as we get requirements from our executive team saying this is a high level goal that we want across the GoPro ecosystem. And we bridge those two together and we present it to our stakeholders and from there we actually set a priority top down of saying this feature is more important than this feature etcetera and then we work through that backlog and try to solve it as we can.

Carlos: What variables do you use in, I mean, do you guys use something like ROI for like prioritization of what’s going to come down to the pipeline. And I say ROI but ROI could mean like all we need to pay down to technical debt so that by itself is going to be our return of investment. But what sort of variables does the company usually cares about when it comes down to prioritizing the next set of releases for. Let’s say Q1 of 2017.

Andrew: That actually vary so from sprint of sprint I actually have, our sprint breakdown is 60, 20, 20. So we have 60% product ask, so new features or clean up the userabilty, 20% bugs, so we always want to make sure we’re flushing out bugs and making sure the product is best as we can and then 20% tech debt. In order to make sure that we’re efficient as possible as we sprint. We want to make sure we turn down that tech debt on an on-going basis so that it just doesn’t pile up and we’re stuck with an old monolithic app that can’t move. And so from a company level we actually have an ROI in terms of hey these are the features that get across the boards. So these are the most important. This is for the web team, this is what we want to get you out. Let’s see how that ranked against. What you have and then we’ll present that to our stakeholders and from there we prioritize based on that.

Carlos: I think that 60, 20, 20 is brilliant. We view some of that internally where we comes to clients and say, “Hey, this is what we propose for a given sprint.” Our sprints are shorter, they are 1 week sprints. But there is always a push back when it comes down to, “No, let’s pay the technical debt later.” How do you make case for it? And I know this is a little deviation from our original plan of questions but I think this is really interesting. This is probably something other people in your position can learn about. Like how do you push back and defend to respecting the payback of technical debt on a sprint to sprint basis.

Andrew: Yeah, so it’s actually is hard birth really at first of getting that on the board. It doesn’t add any money, or doesn’t directly impact money. Doesn’t directly impact features that we work on but the way that this is a good for anyone is that you’re always going to want have tech debt whether it’s like you’re rushing to get a feature out or once you build that you have another way of thinking about that new software. If you actually put that inside your sprint every sprint, you’re building something that you’re passionate about, the team is passionate about. So one of the big things for me, I mean, how I managed my team is that features will come and go, they are important, time come and go and due dates. What’s really important is making sure that the engineering is actually happy, right. So my focus is always making sure are you happy. And one of the things I bring as coming from an engineer myself is that what makes me happy is making sure that I can work on things that are easy, that are fun, and the tech debt is what actually will make it not fun and not make it easy. And so when I first approach this about a year and a half ago when I came to GoPro it was kind of a little bit of a wonky sell of how to get it integrated into every sprint. But over time I’ve proven that we’re able to complete features faster, better, more secure and the team is happier so they’re more willing to take on more work when the time is needed.

Carlos: So how about, maybe this is not, I don’t know if this qualifies as technical debt but let’s say you need to, let’s say React 2 comes down and the next version of something comes down. And you say, “You know what we want to implement this because of x” Is that part of that and how do you prioritize that sort of thing that might maybe take up a couple of sprints before you’re back to doing any actual feature work.

Andrew: Yeah, so that’s part of the with the 60, 20, 20 breakdown is that I work with the team and we have a stack sprint of tech debt so the team always comes up and I have them create tickets from engineering side of things that they would like to see. I also meet with them weekly to talk about architecture or design and we have a friend in Friday, we talk about new tools. And so we go through this different stack sprint of items that they want to have. And I prioritize them based on like complexity, can’t be done on one sprint, how to break it up into multiple sprints and we just do it so that constant allows us to focus and to bring in new things like React 2 or etcetera. It needs bigger frameworks because we plan for it. It’s part of our day to day cadence and weekly cadence from there we just know that it’s going to be part of our day to day work. It’s not even impactful if I need a little bit more for getting spring in some of the engineering managers, or like help. They help me beforehand or my product I say, “Hey, I need like 25%, can I do it?” And they are more happy to be flexible with that.

Carlos: Something I should have asked earlier. How many software engineering teams are there at GoPro. And maybe you can give us a bit of an idea of the size of what software engineering looks like.

Andrew: Yeah, so the size within software services were couple of a hundred. We have multiple offices so we focus on cloud computing so that’s what the San Francisco office does. A lot of our APIs, and our Dev Apps, and our Web Based Applications. We got San Diego office or Carlsbad that’s focus more of our desktop and some of our mobile applications. So our capture app. We have offices in France that’s focused on our quick editing and we’re a global company so it’s broken down across the board.

Carlos: Got you. And you managed a team that does primarily the web parts.

Andrew: Yeah, so I actually manage multiple teams. So dedicated to the websites, web applications and web components and so I might focus on the web.

Carlos: Got you, so one thing that stuck to me is, you mentioned that you estimate projects, right? Is that something that you do alone or do you bring in your team for…

Andrew: From a higher level I’ll do it. So I’ve been working with the team now for about a year and a half. And the way that I write every ticket is since I’ve been an engineer myself, I write it to, if I would actually be able to solve it myself. And the reason why I do that is the team we agree upon how many points we can actually get done in a given sprint. And from there we’ll try to work through in some of these tickets and just stack rank them, top-down, we’re going through them. If one of the items become a little bit more complex our goals is still as a team so all the engineers and myself we are one team. So if they can’t get to one of the ticket I’ll just grab it if I have time and I’ll complete it myself. So that way we are always working together to solve the problem.

Carlos: Got you, so I think you’re saving a little bit of that overhead where you do like with planning we’re you bring your entire team, calculate every single story. Is that some overhead you trying to shade down on?

Andrew: Yeah, so my goal for the engineers is actually I want them to code 7½ hours a day every day. So in order to make sure that that can actually happen is I’ll give first a high level estimation and 80%-90% I’m correct which has been pretty good. But before the team actually agrees who takes on the work. We walk through every ticket try to make sure we have a flush out details. There’s anything else that might have pop up. And then I actually ask them on every single ticket, does that point value look correct? Do you want it higher, do you want it lower. And we actually do kind of voting system across the whole team. And say, hey this is higher this is lower by doing thumbs up or thumbs down. And from there we actually adjust it on the fly.

Carlos: Got it. What are some of the major challenges you’ve had at GoPro? By challenge by the way, I mean like, what are some of the. And with challenges I don’t mean like negative. I mean like what are some of the things that you had to deal with in terms of like challenges of like you need to do this by certain dates. What is some of the initiatives that you’ve been successful with since you started that are big undertakings?Andrew: Yeah, I would say there’s a couple. One of them is one when I first came on we had a decent working process in terms of story, product, design, it’s really rough in the edges because GoPro is just really building on our software teams. From there, over the last year and half we actually really flush them out, pretty consistent we have a good cadence with all the different teams. We meet weekly on this core team to flush out all of our requirements making sure that we’re all on top of what we’re working on day to day. So it was actually difficult at first. All the applications that my team has built, we had a couple of legacy one that we’ve rebuilt from scratch as well as having a brand new framework that my team has actually created. And then from there we finally launched multiple applications that are currently in production. And last month one of the big things, bigger challenges is that it was cross multiple team organization release. So we have mobile application desktop. We had the cameras all launched at the same time so it was a tremendous big deal for all of GoPro.

Carlos: Alright, so this has been very cool to get an idea of you as an engineering manager at GoPro on the kind of your priorities and how you execute. So now I have three last questions for you that are more kind of for you. Really not necessarily related to work but what advice would you give your younger less experience self. Let’s say you run into yourself couple of years back. What would you tell yourself?

Andrew: Yeah, I would say I’m definitely proud of where I’m at right now so I would actually tell him, “The hard work definitely pays off. Don’t give up. Some of the tough times it’s totally worth it dude. Always keep putting yourself on learning. Anytime you can, watch a video, grab some websites, push yourself to new tutorials. You’ll never realize when you actually need those tools.”

Carlos: That’s good advice. What’s a book you would recommend? It could be on the subjects we discuss today or any book that you think has impacted you.

Andrew: Yeah, I would say a lot of the stuff that I work on in technology, try to read blogs or articles. They are much more up to date. As soon as the book is published it’s going to be out of date pretty quickly. But one book that actually stands out is Creative Thinkering and what that is it’s basically focused on how to really be creative and change the way that you think about anything so whether it’s designing products. Just be more creative in terms of that and that was amazing for me.

Carlos: I actually have that book. I had a coach who recommended that book to me maybe two years ago. And truth be told I started it and I said, “Oh my god, this is more that read.” This is something like you have to study essentially. It is an amazing kind of exercise of a book. I need to pick it back up and thank you for the reminder actually. I’m going to go get it again. It’s somewhere here in my book shelf. Alright, so are you guys hiring now? Is part of your role at all with team building or any of the sort of thing.

Andrew: Yeah, so within GoPro we’re always looking for hiring the new best talent to help us along with our journey in software. My team are currently interviewing for different engineers so always looking for new candidates.

Carlos: Alright, so yes, so that’s brings me to my last question. How can people find you? Let’s say they want to ask you a question. They’re interested in applying, working with at GoPro. What’s the best way to apply? You know how it is. You want to work at a company and you’re sending that at cold email or a cold resume. What’s the best way to make an impact at GoPro and how can they proceed with that?

Andrew: Yeah, the best way to get hold of me. You can find me on my personal website andrewcmaxwell.com, on Twitter @amaxwell02, and anywhere online. I’m really easy to find and get a hold of. In terms of how to make a big impact for GoPro is, have a good GitHub. Let us see some of the code you’ve done. Not only it will show us some of the task or styling that you actually code with but also it will show us how passionate you are. So the more code you have out there definitely shows how you are interested. Even if it’s the real things like here’s a simple docker image that I set up. Here’s a quick, a loop or something that shows that you’re actively working all the time. So I would say with that and then passion. Show us whether it’s passion with coding, passion with the products at GoPro. One of the questions I have on interview is why GoPro? What has you excited? To be able to have people that are happy and want to push their careers. Want to push themselves into anything that actually shows that you’re actively involved with community. Just big selling points so thumbs up there.

Carlos: Alright, well Andrew man, I want to thank you so much for your time today and by the way everybody whose interested in GoPro get in contact with Andrew. Find him online. I’ll let you do your homework. Just do your homework. Show some passion. But anyways, Andrew, thank you so much. This has been a very cool interview. I want to thank you because again, I know you guys are really busy out there at GoPro and you took your time to come join me. So thank you so much for being on the show.

March 2, 2017 / Comments Off on Frontend Development at Day One with Murphy Randle

Today, we have Murphy Randle on the show. For those who don’t know who Murphy is, he heads up the front web work at Day One. We’ll cover topics like picking a framework and the business decision-making process.

Once again, thank you for tuning in, and let’s welcome Murphy.

Show Transcript

Carlos: Hello everybody! Today, we have Murphy Randle on the show. For those who don’t know who Murphy is, he heads up the front web work at Day One. How are you Murphy? It’s a pleasure to have you. How are you doing today?

Murphy: Great, Carlos. Thanks for having me on.

Carlos: I was excited to chat with you because during our pre-interview I felt that there is lot of people that might have been in similar situations as you have been for the last couple of months, picking a framework. So I thought that bringing you on to talk about your decision making through this process would be very insightful.

Murphy: I’m glad to talk about it. Where do you like me to start?

Carlos: So before we jump on that, tell me a little bit about yourself and how did you get started in software?

Murphy: Alright. So I got started in software pretty young because my mother homeschooled myself and my siblings. And they were technologically advanced family from the start and when I say they, I mean my parents. They always cared a lot about providing us opportunities to educate ourselves in preparation for the future. And so they spent time and effort getting software at educational prices for us and tools for doing video capture and things like that. So my brother got way into video editing and dabbled a little bit in 3D animation. And then 3D animation ended up being something that really called to me. I think I was about 9 years old or so at this time. And I started doing that for many of my free hours in the day and continued to do that, and to love doing 3D animation work until college, all through high school then into college. And then, I happened to be growing up next to one of the top universities for animation in the United States called BYU, Brigham Young University. And so I got into the animation program there. Not so much because of my artistic skills but more because of the time that I’ve donated to working on their senior projects. They needed a lot of help and I had time to give so I just put in many hours per week in the lab. And while I was there I ended up doing, and started to get into programming for real. I had done a little bit in high school, I had dabbled in enough to think, ?Boy, I’ll never be a programmer and this is hard stuff.? And then I started to do some more realistic stuff to help the films that I was working on at school get done. And I ended up really falling in love with programming there.

Carlos: Ow, how did you end up, you had some work with, was it Disney?

Murphy: Yeah, Pixar.

Carlos: With Pixar, right? That’s impressive.

Murphy: They are close to be in the same thing now. They’re separate companies but still they share a lot of assets. So, yes, Disney bought Pixar and I got to work with them. They were coming to mentor to BYU animation program. And so they would send a couple of people out regularly and they would work with us and also look for people to do internships. And I ended up actually leaving school for a couple of years to go and serve mission for my church. But when I came back, I got back in contact with them again. And they were still interested in me doing internship so I accept it and I went and I did an internship in Rendering Technical Director position for six months. And I worked on the film Cars 2, that was my film, which is unfortunately probably the least good Pixar film that there has ever been. But I had a good time with it anyway.

Carlos: It’s seems interesting to have in your resume that you are part of the Cars 2. That’s impressive!

Murphy: It is fun also to be able to tell people that, I’m like, ?Oh, I know Lightning McQueen. He is my friend.? And then the kids go, ?Oh, that’s so cool.? You know, that’s fun.

Carlos: I like that, and so from there I guess, I’ve heard the story a lot by the way in terms of people going into animation and somehow be able to use those same skills to engineering. What was your step after Pixar?

Murphy: Yeah, so that’s the transition point right there because at Pixar I got the opportunity to get a lot deeper into programming and software design than I had ever been. And I started to discover that I was more interested in programming than I was in purely doing animation. I came back to school and started to delve deeper into the programming study and considered switching majors over to Computer Science. But that didn’t end up working out with schedules and finishing school so I stayed in my Animation major. But I took a lot of Computer Science classes and I really started to fall in love with software design with just normal Software Engineering, not necessarily tied to Animation. And the real transition point came when I was looking for internships again while still in school. And in a company called Space Monkey, local to me here in Utah. And they didn’t offer me an internship but they did offer me a full-time job as a web developer, as a Python web developer. And I was way into Python because that’s the language for animation at the moment or at least it was when I was doing that. So I took that job and that’s when I started to really get into the web stuff. I kind of fell far field from the animation world. So I’m not really a part of that world anymore so much but more of the web programming and software engineering world now.

Carlos: Well, so much so, that you spoke at ng-conf earlier this year.

Murphy: That’s right, yeah.

Carlos: What was your talk about?

Murphy: I talked at ng-conf about Elm, about a language called Elm which your listeners may or may not have heard of. Do you want me to talk a little bit about what of it is?

Carlos: Yeah, we’ll get into that in just a second. So I know that recently you have a little bit of a job change, so I think it’s probably the core area of what we are going to be discussing as you now working at Day One which is an app that I’ve used for years. I loved it. How do you like it there? How it has been?

Murphy: It is a fantastic company. I really have enjoyed working at small companies a couple of times in the past years. It’s just, it fits me well. And there are about around ten employees here, 10-15. I’m not just counting in my mind at the moment. I should know us all in number. But that small, single team feel something I really enjoy. And I just came from another company that I also love that was a very different environment called Koalian. That was corporate software for higher education purposes. And so this is a very different from that team. Could you hear the cheers in the background?

Carlos: I can.

Murphy: Yeah, that’s the whole office cheering for something.

Carlos: They probably just play some code or something, something went live.

Murphy: I think Apple announced something exciting. That’s what happened.

Carlos: Oh, I think Apple is announcing something today. Alright, I’ll check that out later. Alright, so this kind of the area that now we start talking about, the meat of this episode or the core of this episode for the vegans out there. The choices that you’re making in terms of framework choices because you are heading up the frontend web components or the frontend web side of Day One. I make sure that I don’t call it components because people then get confused. So you’ve gone through a lot of decision making throughout this process. I know you were thinking about Elm. You are thinking about, you know, few other frameworks so what I like us to go through today is just tell me a little bit about each and you know, we’ll talk about Elm, and we’ll talk about some of the other options you’re considering. And I know that you’re close to making a choice, so maybe you can also kind of guide us through the ?Whys?. So, let’s start with Elm for those who don’t know what Elm is. What is Elm and why is it important to you?

Murphy: Elm is aesthetically type language. So let me throw in really quickly here that this decision interesting because it’s not just about framework but it’s about frameworks and languages. So this isn’t just a JavaScript framework idea. It is ultimately at the core of that but it’s also how we interact with the JavaScript framework so that’s where Elm comes in because Elm is not React. You wouldn’t be using React, or Angular or Vue or anything if you are using Elm. Elm has its own language which also comes with its own framework for frontend web development. And that framework is built upon the same kinds of technologies that React has built upon and Angular also. So they’re kind of similar at the core. They have different APIs, they have different approaches. And Elm is not only a different framework but an entirely different language that compiles down to JavaScript get sends the browser. Does that make sense?

Carlos: Makes a ton of sense. And why do you personally like Elm? What about it is compatible with your taste if you would?

Murphy: I really love the functional approach that the language takes. I started studying Haskell about almost two years ago now at my previous company. We had, one of the team members, he was a big Haskell fan and started us all learning about it and it stuck with me. I really enjoyed it but it was also extremely difficult to try to get anything done, or try to start, or actually understand the concepts that Haskell gave to me. Haskell is kind of a server side language. It’s been around for a long time that embodies many of the functional programming paradigm and design patterns that are being talked about right now in the React hype and a lot of the blog article you might be seeing around. There’s a lot of talk about functional design and about being able to reason about code, etcetera. And so a lot of those things originate from ideas that were implemented in Haskell so I spent a long time reading books and trying to compile Haskell programs and not getting anything done because there are a lot of advanced concepts especially mathematical concepts that I just didn’t have the context for. And so I wanted to do it but couldn’t get anything done until I ran across Elm and my co-worker said, ?Hey, you should check this out it’s pretty neat.? And I say, ?I don’t know. Looks like kind of a weird thing.? And then I pull it up and started to use it and in just within a few hours I was actually doing things which I hadn’t been able to do in months since studying Haskell. That was exciting to me because I could use those functional patterns that I was learning about and I was excited about, and didn’t have to be terribly confused by a lot of the more advanced abstractions that you run into with languages like Haskell. So that’s part of what Elm’s approach is. It uses a lot of the same concepts that functional language like Haskell use. But it on purpose clears away jargon. It clears away a lot of the language that an object oriented programmer wouldn’t be used to and designs the language around a set of simple core attributes. That’s probably the wrong way to say that, around the simple core principles of functional programming. And it gives you a language that it’s easy to apply those design patterns and it was easy to learn to.

Carlos: And do you think that because of your preference for functional programming. Does that also kind of lead you into React?

Murphy: Yeah, certainly so, we used Angular at my first job, the Space Monkey. I love it and I thought Angular was fantastic. Angular has got a lot of great design patterns around it, but it’s also very object oriented, very kind of classical if you’ve come from a university study in the recent 10 years I think. But React being someone new takes a more functional approach to designing frontend user interfaces. Its ideology is kind of Model In View Out, and so you take in a model you render it purely. You put out an output and then you, it reacts to events that happen. You change the model and then you re-render the view again. So it’s not doing the same kind of dirty checking like updating parts of the state and re-rendering parts of the view like Angular does. It’s more of an entire approach where maybe you update, keep all your states in one place, you update a piece of it and then the whole UI re-renders and it tries to do it intelligently. No, that’s not, you don’t have to work with React that way but that’s generally kind of accepted pattern right now.

Carlos: So was that a reason why you didn’t value or you didn’t add to your balance Angular JS into the mix.

Murphy: I think that the reason I didn’t go back to Angular was, well, I moved to a new company. From Space Monkey I moved over to KoaliCo and I was on a very small team there. We were able to make tech choices there because we were just starting things out. And React was the new hotness and it was super fast and at that time the kind of JavaScript propaganda was saying, ?Angular is dead, React is the thing.? And we were all excited about that too so we dove on the React train or jump on the React train and started to use it. And while we were doing that, I told you about a co-worker who introduce us to Haskell. He was able to teach us a lot of these functional design patterns and those were exciting. They made a lot of sense to me and so I never really had the chance to think, ?Well, I wish I could go back to Angular now.? React really clicked with the stuff I was excited about that time and it really made sense to me, it’s API. I think Angular is super neat. But at this point I probably wouldn’t be able to go back to Angular easily and get a lot done because of the way my brain has changed in its understanding design patterns.

Carlos: Yeah, and it’s exactly that. It’s kind of how you function, how you work kind of dictates what to work with. Of course there are reasons, there are people that will say, ?Oh, this is better here or there.? But I think there’s a lot of subjectivity around it. I’m always curious though about the framework choices and the way that people weigh in the different factors. So, last time that we talked you were kind in the middle of this and you hadn’t made a final decision. We’ll probably do the reveal at the end but I don’t think anybody has surprises. Well maybe there’s a surprise here and there. We haven’t talked about one that might come out. Did you factor in any, something such as ramp up speed versus community support as a factor of choice? Not only for now but looking into the future, right as you think of adding employees and so forth.

Murphy: Yes, so those Carlos, those are the really stressful factors. Those are the ones that really matter are things like what you mentioned. Because there is language design which is fun and exciting. But languages can be designed and argued about until the cow has come home. But there are infinite combinations of possibilities and language design. And infinite opinions about which are better. I think those are very subjective so. It’s not so much about language design this decision. As it is, it’s kind of a person, a people problem because it’s really be able to hire people if we need them when the time comes around will this technology die before we can get to market. Will it die before we’re able, you know, while we’re trying to support it and before we’re able to move to something new. Will there be enough support from the community that we won’t have to spend thousands of extra hours implementing tools to just support getting our tool out in the first place. So those are all I think the big considerations versus something like, ?Oh, does the language have for loops or something like that?? So those were the thing that we were kind of stressing about and talking about now. And I was stressing a lot about as I was trying to make this decision over the past couple of months.

Carlos: So let’s just bring it out there. The one that also made the cut though and you’re using it in your stack is Scala JS. So, you know, we all, no not all, but a lot of people have heard about Scala JS. But what is this Scala JS? And why did it become a contender?

Murphy: Yeah, that’s, ok cool. Let me first mention the other considerations we were making too because the obvious possibilities were just normal JavaScripts with React and Redux. Those are very popular right now. And we were doing that at Koali but I found JavaScript pretty difficult to maintain after a year and a half of working on a project, and growing that project, and having to change that project. I found that often without something like a strongly typed compiler to help me re-factor the code in JavaScript I was breaking things a lot. And so, it takes a lot of discipline from the developers. Self discipline to make sure that the test is comprehensive and that things are inline before JavaScript can easily be re-factored. And so, that was a big consideration that I had. I knew I just said that we are worried about people problems. But I think this count as a person problem because if you have a compiler that actually capable of helping you understand your program and re-factor it. That’s going to save many man hours of work. And not just work but also stress and pain for the developers who are writing. So that’s a big part of it. I really want to go with something that had a static type checker. And there were options like TypeScript and Flow and I worked with both of them. But I don’t think we have time to talk at the moment as to the finer details of why I didn’t think those would solve my problem. The other options we’re Elm which I’ve used and really like, PureScript which I also have used and I really liked, and Scala JS which I’m just now kind of starting to get sink my teeth into. And as you said that’s the one we ended up going with. So the reason that Scala JS even came up and was an option was because all of our backend code is already in Scala which is the functional language that has advanced type system, aesthetically compiled, run on a JVM, it’s a super neat language and it is supported by quite a few companies. There are a lot of people so it’s got a nice big community around it. Not as big as Java but it is pretty big. Big enough to be comfortable with so that came out as an immediate option. And Scala JS is a project that takes Scala code and compiles it to just JavaScript. So it makes a little JavaScript library that it can use at runtime and it bundles your code into it and it ships it to the browser. And you’re running JavaScript that’s been written through Scala. And a lot Scala’s libraries are even compatible with Scala JS so you can just pull in one popular library called Scala Z or Scala Zed if you’re from Canada or other places. You can pull that right in and just use it even though it’s not a JavaScript library. So that’s a pretty cool option and there are some neat wrappers for React too. So that was one of the decisions there. That’s the framework decision as you are saying, ?What framework are we going to go with?? I was pretty confident from the beginning that we wanted to stick with React because I’ve used it for a year and a half. I’m kind of, I’m used to it, like it. I think it has a good design and takes a good approach. I think Facebook is good at shipping updates and they’re pretty solid about supporting and so I feel pretty confident with React. And I wanted to keep that as the thing that actually rendered my views to the page versus something like Elm. Even though I really liked the language Elm, I wanted to opt for a more widely community supported rendering framework than Elm has. And not because necessarily it’s better but just because of that community support factor and the familiarity in when hiring people. Many people already know how React works versus having to learn the way Elm works from the ground up.

Carlos: Which is somewhat of an interesting subject that I have to touch on a few times recently, about the value of hiring engineers that are good engineers versus hiring developers that are just good in one framework. And I don’t mean to offend anybody by calling them developers. It’s just that there’s a different mindset when you’re an engineer who can grasp multiple frameworks, multiple technologies without, because you have that basis, right? What’s your opinion on that?

Murphy: I think that’s a good distinction and I’m working to try to make myself not just somebody who is stuck with a certain tool, or has a certain skill set in one specific implementation or tool but rather someone who has a good understanding of Computer Science as a field. And I think that we look to hire those kinds of people too, people who understand programming in the large as far as, ?Oh, how do we approach solving problems?? It doesn’t really matter so much with what language of choice at that time but can quickly learn the syntax, semantics and adapt to it. And begin to implement the age old Computer Science approach to solving problems, right? So that’s what I look for when hiring people. Unfortunately, I think those are the harder people to hire because they are the most sought after in, and the most difficult to identify. Because how do you know if someone is able to do that until you’ve worked with them for a good chunk of time. And can see the way they approach problems and handle new situation. And aren’t just nervous in a whiteboard trying to reproduce some pre-conceived thing, you know.

Carlos: Right, no, no, no. It is hard, I would say that we have to figure out a way to bring that into your process because it is that important. So when do you think this project will be done. I know you can’t give me actual dates but what’s kind of the timeline for it?

Murphy: That is a great question and at this point it’s completely undefined because we are about to take the first steps into making the web client happen. So, I’m sure that the plans are going to change a lot in the next few months as we kind of flash out what it is and what it will mean. So the goal is to make a web app. I’m not sure how that’s going to end up. If it will be even be the same thing or if it will be an electron app or what not but at least we’re getting started. And we’ve chosen at this point to move forward with Scala JS and React in the backend. And then if we need to drop down to JavaScript for speed sake or whatever it may be, we could do that. Now that’s something that we have also reserved the right to change based on what we discover as we move forward but it seems like the correct decision to make right now because it’s already part of our team, Scala is. And we already have the main knowledge and expertise there. That’s probably the biggest reason.

Carlos: That’s a pretty good answer because you’re sudden on your ways but you’re not, you know, hard coded into it. Like you’re going to evolved in the process. So I know you’ve been big on conferences, any new conferences that you’re going to be chatting or talking at soon?

Murphy: Yeah, next stop Elm Conf which is a mini conf connected to Strange Loop. That’s next week so I’ll be talking there on a fun topic where I’ll put together a crowd sourced music player app that reads music from Twitter. And hopefully I’ll be able to live demo it and not have things crash in front of everyone.

Carlos: That’s sounds pretty fun. Alright, so well the last two questions. What’s a book that you would recommend that you’ve read based on some of these subjects we discussed today?

Murphy: Can I recommend five books?

Carlos: Oh yeah, please.

Murphy: Ok, because I was thinking a lot about this. So, in order to learn the things that I’m playing now, it’s unfortunate that there’s not at this point any one book that I would recommend. But I would recommend the combination of the following books. Number one I think would be Haskell book, and just Google ?Haskell book?. I think it’s like haskellbook.com. So that’s an excellent introduction to functional programming. What Haskell is, kind of that whole world of things. And then there’s a book called Functional Programming in Scala JS, distribuited by Manning. It’s got a bright red cover. That’s an excellent book because it talks not just about the language Scala but it also does a really good job of approaching functional concepts in an understandable way. And also teaching you to kind of understand how to make your own functional designs, your own patterns in a functional way and why that’s useful, so that’s a great book. The third one would be, and these aren’t into any particular order. I’ve been jumping back and forth between these books over the past years so, Learn You a Haskell by, I can’t even say his name. I’m not even going to try. But if you just Google, ?Learn You a Haskell? you’ll find. And it’s free to read online and it’s an excellent book. It’s a little more advanced than the other ones. I mean, it gets advanced quickly but the first few chapters are really great way to start understanding what functional programming is. So there’s three, let’s see if I’m going to add up to five. Maybe I have the wrong number in my head. Another one is Grokking Algorithms which is an excellent book distributed by Manning. And the author is very intelligent and he also is quite good at doing these very cute little illustrations to help his concepts. So that’s a book that goes through a number of introductory algorithms and teaches them in a very understandable way. And also the writing is excellent and quite entertaining too, so that’s a super super book. I would highly recommend that one. Okay and the last book is PureScript by Example by Phil Freeman. And that is a book available on Leanpub. You can donate to it or you can read it for free. And it’s a full length book about using PureScript to develop web applications which is very much like Haskell. And the book contains a lot of gems as far as instructing on functional design patterns and buildings stuff with it and learning about monets and things like that. So that’s my suggested reading list for right now.

Carlos: How long did it take you to read all those five books?

Murphy: The trick is I haven’t read all of them yet. I’ve been taking them piece by piece and kind of mixing them together into a smorgasbord books board in my brain so I’ll jump back and forth between them and read a piece of a chapter here and there as I’m trying to implement a concept in it. It’s really helpful to get all of the different perspectives. I think much more helpful than just sticking with one of the book’s perspectives.

Carlos: I couldn’t agree more. I read often, actually a lot. But sometimes, you know, what happens when I change. Let’s say I’m reading about topic A, and then topic A is covered differently in Book 1 versus Book 2. All of a sudden by the time you’re reading Book 2, you forgot about Book 1. And I’m trying to like figure that out because I don’t want to stop reading. I want to read more but I want to, it’s like, it’s not really reading, it’s studying that we got to be doing these days. Murphy, and this has been an amazing interview. I want to thank you so much now but I do have one last question which is probably the most important question. How can people find you? How can they find your work? And are you guys hiring at Day One and how can they apply and all that?

Murphy: Great questions. I’m reachable on Twitter my handle in Twitter is splodingsocks, S-P-L-O-D-I-N-G Socks, and I’m more than happy to chat with anyone there. Or on GitHub, I have the same username. I’m also reachable on the Slack Channel, a number of slack, I’m on the Elm slack and have the same name there if you want to start to talk to me. And Utah JS, if you’re local to Utah, there is Slack Channel just for Utah people. It’s a functional programming slack, I’m there too. So I’m pretty findable. And also, I’m an instructor with egghead.io and I have some videos of Elm if you want to go watch them. I have plans to make more video soon about similar topics. So that’s where you can find me. And Day One I believe will be hiring an iOS developer soon. And potentially web developers in the future. But at the moment I think I’m the lone ranger web developer dude. But that could be changing in the near future. But if you do iOS and you like Day One, we’d love to hear from you.

Carlos: Murphy, once again my friend I want to thank you for the wonderful time and an amazing interview.

“Data-driven web applications”. That’s what most of us are building. That means our application takes in data, processes it and then displays the processed (and / or raw) data in some form. Continue Reading…

December 16, 2016 / Comments Off on Creating Products for Enterprise Customers

Today we have Falko Buttler and Daniel Dietzel from Jiff.com on the show. Falko is the Senior Director of Engineering and Daniel is a Senior Frontend Engineer at Jiff. They are joining us today to discuss their extensive frontend engineering experience. During this episode, we’ll talk about implementing Angular JS as a startup creating products for enterprise customers and also delve into some other exciting topics.

Once again, thank you for tuning in, and let’s welcome Falko and Daniel.

Show Transcript

Intro: This podcast is brought to by Gistia Labs.

Carlos: Thank you for tuning to Tech People where real life tech practitioners share their professional experiences.

Carlos: Hello everybody! Today we have Falko Buttler and Daniel Dietzel from Jiff.com on the show. Falko is the Senior Director of Engineering at Jiff. And Daniel is a Senior Frontend Engineer also at Jiff. They are both joining us to talk about their frontend engineering work, and during this episode we’ll talk about implementing Angular JS as a startup creating products for enterprise customers. We’ll also dwell into couple of other topics. One that might be very interesting for you and it is how Angular JS has helped their team at Jiff standardize their hiring processes and also kind of the profile of people that they hire for their engineering teams. So well, I hope you’ll enjoy this episode. If you like it, please don’t forget to rate it and subscribe, and leave me any comments. So you can always reach out to me at carlos@G-I-S-T-I-A-.com, carlos@gistia.com. And once again, thank you for tuning in.

Carlos: Thank you guys for coming on the show! How are you doing today?

Falko: Very good, very good.

Daniel: Good. Yup!

Carlos: Doing good, doing good. Really happy to have you guys on the air and we had some scheduling issues so I apologize for that. I thank you guys for the patience and making it today. So tell me a little bit about your backgrounds and how did you end up in software. I’ll let you go one at a time.

Falko: Sure. So my name is Falko and I knew very early on that I wanted to get into software. Even like during High School I already work in it. And it was always fascinating to build something out of nothing because you’re writing code, and you can basically imagine whatever you want and you can actually do it. And that brought me to Silicon Valley about four years ago when I joined Jiff. And now, I’m a Senior Director of Engineering here and I’m heading the frontend team so iOS, Android and Web.

Carlos: How about you Daniel?

Daniel: My name is Daniel, and I actually, I got into software on accident. I came to America to study art, actually Fine Arts. And after graduation I needed to pay some rent, and the only real skill I had was Photoshop because I studied Photography. And so I actually started by slicing up Photoshop templates into HTML, and then next thing I learned HTML, then I learned JQuery, then JavaScript, then real engineering with Backbone and Angular, and next thing you know, uhm, I end up in Silicon Valley working for Falko.

Falko: [laughs]

Carlos: In our conversations before, it seems like you guys have a very strong team. And kind of have built a really strong way of working together which is of course really good and part of our topic today of course. So today we’re going to be talking about the decision making process behind making a frontend framework. Some companies might be in a position where, again they’re looking towards the future but you guys have been doing this for some time already. So you guys have some visibility that others might not have so, you can look back and say, “These are some of the wins and maybe some of the issues we had with this or that”. So let’s just jump right in, so at Jiff though before we jump into the framework. What is Jiff? What you guys do over at Jiff? Like what does the company do?

Falko: Jiff is basically providing health benefits platform. And what that means is that we are working with Fortune 500 companies and then other larger companies and helping them defining and rolling out digital health incentives and benefits. And that includes challenges that people compete against each other where people get rewarded for doing certain healthy steps and will personalized it based on your needs so that. The whole idea is we want to make you healthy, you’re more productive as an employee and help you reduce your health cost.

Carlos: In terms of your stock, maybe we can talk a little bit about how your system or sort of your architecture is laid out. So there’s, from what I understand from our previous conversations there’s a couple of products or a couple of systems that make up Jiff and you guys use Angular JS for those.

Falko: Yes, so our backend is mainly in Ruby, and newer parts in Java, and then we have two native iOS apps that are written in Objective C and Swift. And then we have three Angular apps that are in production so, two are apps that our users use and one app is more for administrator usage and for the health benefits administrator. And those are all Angular apps.

Carlos: Alright, so it’s, I think the area that we’re going to kind of zoom in a little bit more is going to be about the Angular world, and maybe we’ll touch a little bit on the Rails side, maybe how that has evolved. So Falko, you were there at the beginning in terms of selecting the next framework and so forth. Why Angular, and why not some of the other options?

Falko: Yeah, so we had Ruby on Rails applications at that time and it was really hard to scale it and make it, yeah, make it faster, but also make it easier for other people to contribute. And we also wanted to decouple it from the backend as much as possible especially since we also had an iOS app that also only talks to our backend through APIs. So we wanted to have the same concept for our web app as well. And I, basically I did a bit of comparison of all the different frameworks that were out there at that time. So Backbone was in the mix, Angular, Ember, and the few others. And for me Angular had the biggest community. They were the most people using it. It was still actively in development, in heavy development. There were lots of people who use it so, for me it was also a question about finding people that I can hire that know it. And it was well documented and it was still backed by Google.

Carlos: Daniel, and from your perspective, coming in as an engineer. What attracted you to Angular JS? Is there something specific that you can share with us as to why Angular is liked by engineers?

Daniel: So actually, when I graduated, me and my buddy went both into software. And funny enough I went into Backbone and he went into Angular, and we actually would have fights about which one was better. And Angular ended up winning not just between us two but in, you know, the bigger industry. I think for a number of reasons, the simplest being that, you know, like Falko said, “Google backed, Google backed Angular.” And that really made it an industry standard very quickly. The other thing is that while Backbone has a really really precise control over everything. It’s almost too complex of a tool and Angular is really easy to just, it’s easy to learn and difficult to master. And that means a lot of good talent comes in, and a lot of good people can get something up running pretty quickly. And that means, you know, whether you’re building a small project and you just want to get something out the door, or you’re building, you know, a big enterprise application. Both the tools, the tools are simple enough for people to come in the door but they’re complex enough that you can really build anything with it.

Carlos: From judging by how the Rails is still in the picture. Was your original system built on rails? And what made you guys think that it has to change towards this type of frameworks?

Falko: So yeah, the original system was build in Rails. And now, we don’t have any Rails or I would say almost no Rails in our backend. There’s still a little bit of a legacy system that is using some Rails, but nothing for rendering any web pages. It’s purely backend. For us it was, we got more customers and Rails is known for being a great prototyping tool getting something quickly out of the door. But when you get more customers, more traction and you want to scale it then it gets to its limitations. And we basically felt the same problems. Also Rails, at least the way we build, it was not really build for parallel processing or asynchronous codes and asynchronous handling of data, and we do a lot of that. And now using Angular it was really easy to translate what we had in our native app, in our native iOS app and do it exact same way on the web. So that was no difference in behavior and the difference in how we had to design something.

Carlos: In terms of hiring, and maybe you both can add to this. Do you guys think that picking a framework, maybe it’s not, my question is not about Angular specifically but overall frameworks. Do you think it has had an effect in hiring?

Falko: Yes.

Carlos: Has it made easier to find common denominators for the right type of people?

Falko: Yes. I definitely, picking Angular as a framework, or like any frameworks that you choose definitely has an effect on hiring because we use it so heavily that we needed to find people that know it, and that used it before, and have experience with it. And you also find a certain kind of people depending on what major framework you picked. So if we have chosen something like Ember at that time. I don’t know how it is now because I’m not following it that much. But we probably would have found a few people using it, that have used it for a long time but they use it for different purpose. They build web pages using Ember while we were looking for application developers who use Angular to build applications not necessarily websites. And using Angular made it easier to find these people. Also, Angular at that time when we made that call as well as today is still like hip in that sense that people still jump on the train and want to learn it so there’s a lot of people out there that want to learn it and used it before.

Carlos: And Daniel, one time, last time you spoke you said something about how you thought that Angular or let say picking a framework allowed you guys to use or hire an engineer that came from a boot camp. Well, before it was harder.

Daniel: Yeah, that’s right. The most recent hire we actually did on the frontend team was someone who had just completed the boot camp. And it was funny because we actually had a choice between an industry veteran and someone from a boot camp. And the choice was pretty difficult but it ended up being that the person who went through the boot camp coded exactly like us. We understood exactly what he was doing and he understood how we were coding and then streamline the whole process where, you know, you still have to have a good culture fit and all of that. But at least the software, and the technical knowhow, and the way of doing things is all streamline with the framework like that. You don’t have to go looking in all these different places. You just say, “Hey do you know this framework?” And a lot of time you’ll find really good talent. And we’ve got lucky this last time and we took a chance and said, “Well, let’s all see if you learned anything in the boot camp.” And then it turned out, uhm, you know, it was a really great hire.

Carlos: Do you guys find that there’s a difference between a developer mindset and an engineering mindset? And if so, which you guys prefer in a profile for when you guys are hiring?

Falko: We are definitely looking for someone who knows more than just the framework. Like someone who understands like design patterns, who understands …

Carlos: Because?

Falko: …how to design or how to build like in architecture.
Falko andDaniel: [laughs]

Daniel: Yeah, I always joke that we should make people build Ikea Furniture in interviews because you can spot the good engineers right there. Because good engineers know that the decision you make now, if you do it wrong or rush it you know, five steps down the road if you made the wrong choice, you’re going to have to go back and redo everything. And we definitely look for engineers who, they know the decisions that they make now, the calls that they make now are going, they’re going to have to live with them and work around them or work with them in the future.

Carlos: In line with making decisions and such, what is your take on on off the shelf UI libraries, maybe Ionic Material? What you guys are using now and what’s in the future for you guys?

Falko: So we use Ionic, or we started using Ionic about a year. A little bit longer than a year ago because we, our web apps target both Android as well as desktop browsers. And we wanted to have something that makes it easy for us to build a mobile experience using Angular and Ionic. That’s kind of the purpose that Ionic wants to fulfill. Uhm, but after we use it longer and longer, it was just constraining us a lot and it made it really hard doing something that Ionic didn’t intend us to. And we actually decided to move away from it so. One of our apps is almost completely stripped off of Ionic and the other one is still in progress. And we are actually moving towards Material Design or Material Framework generally. One, because that’s what Google is pushing for Android, but also because it’s much more open and it gives you more freedom on how to use it.

Carlos: What’s your take on that Daniel? You like Material? Have you worked on Material?

Daniel: Yeah, I mean Material is what it is. It’s the next industry standard for UI, you know. I don’t think there’s, I’m not passionate about it either way. I think, you know, it has some good patterns. I think it’s just, people for a long time couldn’t figure out how to make a good UI and we finally figured it out on mobile. And I think that’s the evolution of that. But the answer I think about off the shelf thing, I have to go back to what Falko said about Ruby which is a lot of those off the shelf things are really really good to prototype. But when you get a customer and they say, “Okay, this is nice. But can you add different, you know, A, B, C, 1, 2, 3.” I say, “Oh, [laughs] well, we use this off the shelf thing and if we try to add that the entire thing breaks so.” It’s definitely a trade off if you need to get something out to proof of concept it’s really useful. But like now we’re getting rid of Ionic because when we try to extend parts of the UI, everything starts breaking. So, uhm, it has its uses, it has its downsides.

Falko: And generally, even with Material, when we parted away from, when we try to remove Ionic. We actually build it in a way so that the dependency on Material is much lower or much less than what we ever had with Ionic. So in a year from now, when something new comes out that will replace Material then the work in our end will be not as bad as we just had with Ionic.

Carlos: So talking about things that break and give you issues. Angular 2.0 is coming out of RC pretty soon. [laughs] Is Angular 2.0 in your horizon guys?

Falko: I mean, we’re definitely looking at it, but at the same time like we are bilding enterprise software, so we can’t always jump on the newest thing, on the newest shiny things so we will keep an eye on it. And what we already did is we went to the newest version of Angular 1.0, the 1.5 because that is suppose to help is with migrating to 2.0 once it’s ready. Just an interesting side note we actually got a visitor last week from Google who is working in the Angular team who used to worked for us. And he told us about Angular and obviously wanted to make us excited about it. But he also said we shouldn’t go with 2.0 because they’re still working on a lot of things to make it easier for people like us who have a bigger code base on 1.x and want to go to 2.0 or 2.x. So we actually got some insider help in that sense. [laughs]

Carlos: Yeah, that’s a big benefit of working closely with somebody from the Angular team. We are recording this on the 12th. We are hoping to be, to getting news about Angular 2.0 being official sometime this week so maybe that will come.
But what you guys think about TypeScript? Daniel, is that something that you played around with and do you have any opinions on it?

Daniel: This is where I probably get laughs at of engineering circles because I’m always the guy who asks, “Can I do anything with it in terms of building a feature that I can’t do now?” And usually the answer is actually it’s just a different way of doing the same thing. And you know, I’m way more passionate about user interface than user experience. And really coding for me is just the means to an end to build something beautiful. And exactly what the different thing is under the hood is actually less interesting for me because I’m more of a coming from the design and product side.

Carlos: Got you. Does it have any benefits though? I’ve still have to play with it in terms of anything in production of course but it seems like a lot of people are taking up to it because of ease of use.

Falko: I definitely see some benefits in it and we also discussed it internally of whether we want to adapt it or not. And we look at it awhile ago where we decided it’s not ready yet and we do not want jump on it. What definitely is interesting to me is, like I’m coming from aesthetically type language like C, C++, then Objective C and now Swift. So, for me having a language that way you have something like a compiler, or something that tells you, you are doing something wrong, or that helps you picking the right data types. That alone is definitely big advantage for me. But would I want to have everyone on the team jump on it just because of this? Not right now. We would probably do that if we jump to a newer system anyway and it’s part of it then we will do it as part of it. But not necessarily just for, like a little bit of benefits because our code base are already pretty big. And we wouldn’t want to rewrite everything so we could only adapt it like gradually.

Carlos: And I think this is a perfect segway because you both are on the same page about it’s, unless we need to upgrade we’re not going to. But with so many new frontend technologies coming out, what is the tipping point that makes engineering leaders want to evolve, right? What’s the tipping point? Where is it that you say, “You know what this is definitely something that we need to adapt.” Yes because, as you said Daniel, it doesn’t mean that, it’s probably the same tool, is it going to do it? But at what point do we find ourselves saying, “Ok, there’s a benefit.” How do you guys, how do you measure that? And how does the decision get made?

Daniel: So from our side I can definitely tell you the talent pool is the most important thing. From my side is right now we can find a whole bunch of really talented Angular developers. And maybe in 10 years the pool won’t be as big, and maybe who knows React or something, you know, will be where the talent is. And we’re in an enterprise context which is for a lot of developers, unless you’ve done enterprise before, consulting is a little bit strange because we try to mitigate risk as much as possible rather than jump on the newest technology. And that’s because, you know, with the consumer app you can make updates all you want and break or whatever, and you know, you have to answer the consumers. But in an enterprise development, you know, there’s million dollar contract with every last line of code accounted for. And if you start just randomly changing things the only you’re really introducing is risk so we try to avoid that as much as possible. If we were, you know, doing. We have some apps that are more for smaller audience, smaller sub section. And there the technology evolves much faster because there’s not 500,000 people that are expecting it to work a certain way. You know, it’s maybe a couple of dozen people. And so there, even within the organization the technology moves at different speed, and the adaption moves at different speeds.

Carlos: At what point though is it a waste of resources? You know what I mean? Like, and I think, I think we’re talking the same thing. At what point do you say, “We’re not going to migrate. Not only because of risk but we don’t want to go on the newest thing because not only we do not have the resources but it’s pointless.”

Daniel: I would say in an enterprise context it is a waste of resources by default. And the question is when it is not a waste of resources. But good question for Falko is when is the technology change is not always a waste of resources.

Falko: Yeah, I mean for me, it is like talent pool. It’s like if we suddenly don’t find people that uses certain technology. Also, didn’t we bet on something and it died. Like in iOS for example, now we’re getting like out of the JavaScript world. But we’ve picked a framework for doing JSON Serialization and then storage of data. And it was an open source project and it died and now we need to go away from it. We did something similar with ES6 on the JavaScript side where we thought we go with ES6 and then we found out that browsers weren’t ready for it yet so we have to go back. So it’s just like talent pool. Is this still does support a framework? Will there’s still be updates to it? We don’t want to bet on a dead horse. And additionally, I mean we still want to innovate. It’s not like we’re waiting until something is really dead and then jump on the next thing. We are still an innovative startup and we want to build something new. And that’s why our like UI framework for example change more rapidly than like the underlying architecture because users expect a certain look and feel, and certain functionality.

Carlos: And one of the things that you guys are talking about without saying it is that this is also why you went with Angular versus React. What are your thoughts on that?

Falko: Yes, I mean, we’re also taking a look at React and we follow where it goes. But for me at this right now it’s like, it’s a great looking framework. It has a lot of potential. But right now, Facebook is the only, like the only big one who’s betting on it. There are lots of other people obviously using it but even Facebook is not using it for their flagship products. So even they still treated it a little bit as a, like as a baby and they are still developing it and they are still adding things to it. It’s definitely very interesting. But it’s nowhere as stable and as supported as we would like it to be.

Carlos: Alright. Well, I think we got ourselves an interview. We covered all the major points. So there are three last questions that I have for you guys that might help, you know, people in similar situations as you. What advice would you give to your less experienced, younger self? This is for each.

Falko: That’s an interesting question. Definitely, and we talked a little bit about it, like don’t jump on the next shiny thing. It is definitely very compelling especially as an engineer. Like good engineers always strive to build something, learn something new, build something new. And if you see that new thing to jump on it right away and hope it will work out because it looks so great, and then like months later you found out it looked great but it’s not that great if you want to put it in production. So definitely, evaluate something before you, before you really jump on it. And build a prototype and actually see does it work. Will it work out for us? That’s my one advice. Daniel you have another one?

[everybody laughs]

Daniel: I guess this recovering hothead. Uhm, I would tell myself couple of years ago that there are many many opportunities and chances to succeed in engineering and when you’re just getting into it every fight about every technology feels like it’s the most important thing in the world. And after you do a couple of jobs you realized, you know, if the tech stack here doesn’t work out then this isn’t the last. This isn’t the last thing I’ll ever build and this is isn’t the last company I’ll ever work at into. You never lax a little about getting to into fights about technology and stuff like that you know. It constantly evolves and nothing will ever just constantly be the same thing. And to just, you know, learn to surf the wave a little bit.

Carlos: That’s been a great advice. What’s the book would you guys recommend. And you guys can recommend as many books as you want. We’ll have them on the show notes.

Daniel: I listen to an audio book recently called the Astronaut’s Guide to Life on Earth. It’s a book written by this Canadian astronaut that was the head of the ISS. And it’s really just about all the things he learned at NASA of like how to keep cool in like extreme situations, and like how to launch a space mission and how to like, you know, figure out problems the way NASA does it. And a lot of the times when things are exploding here because, you know, someone made a small mistake and you know it happens. I actually, most of the stuffs that I know about handling that I learn from this book which is uhm, and my favorite thing from the book is that it says that, “60% of everything that can go wrong on a space launch is in the first 7 minutes.” And it talks about how to get through those 7 minutes to get through the other 99% of the mission. And it’s a really good read. It teaches you a lot of the things from all walks of life.

Carlos: What is the name of the book again?

Daniel: The Astronaut’s Guide to Life on Earth.

Carlos: Great, perfect. How about you Falko?

Falko: I really like that book also.
[everbody laughs]

Falko: I would definitely recommend reading it.

Carlos: Alright.

Daniel: I hoisted it up on Falko. He loved it.
[everbody laughs]

Carlos: Alright guys. Well, uhm, and now into the last and the most important question. How can people find you guys, to find your work? And also how can they find Jiff and maybe they’re interested in applying or you guys are hiring?

Falko: Sure. So yeah, we are always hiring, so yeah, like you can find Jiff at Jiff.com. That is J-I-F-F-.com. We are not the peanut butter. Uhm, and yeah, you can reach me via email or you can find me on LinkedIn and my email is my first name so, falko@jiff.com.

Daniel: I’m at Jiff so, [laughs] just come find us and come interview and you’ll probably get asked to build Ikea Furniture by me. That’s like by me. [laughs]

Carlos: [laughs] That’s an interesting concept. I never thought of that. I like that one. Good interview.

Daniel: That’s just a surprise.

Carlos: [laughs] Alright gentlemen, well, I want to thank you so much for coming on the show and I look forward to seeing you guys soon.

Recently, we spoke about the basics of Angular router. We covered everything from configuring angular router to adding basic routes to your application. If you’re just getting started with Angular 2 routing, glance over the other article.Continue Reading…

December 8, 2016 / Comments Off on Adopting Angular for non-front-end-developers with Kirk Graves from 1800 Contacts

Show Details

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.

Show Transcript

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 carlos@gistia.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?

Carlos: 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?

Kirk: Well, starting off, we all have a little bit of background in JavaScript so we knew we would be doing something that was frontend JavaScript, HTML, CSS. There were really only two major frameworks we could see, React and Angular. Angular 1.0, we felt like very mature, very nice but I’ve played in it and I didn’t like it. So I started playing with Angular 2.0 a little bit and I loved the way that it was put together. So with the new stuff it’s all very MVVM, uhm, very Model-View-View-Model put together, so they’re, that’s familiar to me. I do a lot of WPF, same principles. It was relatively straight forward to put together, to code it up, and we could leverage a lot of what we know in C# by using TypeScript so, we love that aspect of it.

Carlos: What are your thoughts on TypeScript? Actually that’s a question I had in my mind I wanted to ask you.

Kirk: I like it! From a, remember I am a C# guy, so if you ask a JavaScript guy you make a totally different answer.

Carlos: Right.

Kirk: But as a C# guy, it feels really comfortable, and so I love what Microsoft is going with it. My hope is that they’re not lying to us. And the lie that I don’t want to hear is what we keep hearing that eventually JavaScript will get where TypeScript is today. That TypeScript is really more of a precursor to where JavaScript will be someday. And I hope that is true because otherwise I’ll be disappointed in all these knowledge I’m investing in TypeScript.

Carlos: So part of your decision making, you know, has to do with making sure that you guys are not starting from scratch every couple of years in terms of decision, on frameworks, sorry. And the decision that you make for a framework that, you know, that you want to make a decision on a framework that will last. So given that JavaScript has such a fast changing landscape, you know, who knows what it might look in 5-10 years from today. At what point do you think we should be striving for some type of stability? Do we even want that? What do you think about that?

Kirk: I’ve been watching a lot of languages grow up. I have come to the conclusion that every language goes through a cycle. JavaScript, this is going to sound harsh. JavaScript has not been a great language for a lot of years. But it was the only thing that was an option on the web and so that has forced people to use it and to develop better and better frameworks to be able to make it so you can use it. However, right now, I’m seeing JavaScript go through an actual development cycle where it is becoming the mature language that it really needs to be. Much like C#, it took awhile for C# to get to the point where it was a really mature language where we weren’t seeing a lot of changes regularly. And I think we will see JavaScript at that point in the next few years. That was actually one of the reason we were excited about Angular 2.0. Not only because we felt like if we got into Angular 2.0 today, we wouldn’t have to learn Angular 1.0 and then Angular 2.0, wait, right Angular 2.0 is going to be here, and it’s going to be around for awhile. But that JavaScript itself will stabilize over the next little while, and we won’t see as much change.

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.

Kirk: Oh yeah, I agree. Uhm, generally what I see as a recommendation, I love to see a variety of things happening in the industry. And so it’s fun to see a new JavaScript framework come out, or a new ORM being produced, or a new design pattern someone has come up with. But that doesn’t mean I’m going to adapt right away. All that bubbling is what produces the best tools and the best ideas, the best thoughts. Eventually though a company has to say, ?Ok, we’re really stable and we’ve got some great stuff we’ve been doing for the last five years. Now we’re seeing this other thing happening. And it is, not only it is really hot, but it’s been hot for a little while and people really like it and it provides us business benefit.? Those are the ones I like. I like to keep myself at least abreast of those, and occasionally throw in a project that incorporates that stuff.

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.

Carlos: Well, my friend, I think this has been a very good interview we’ve had. You’ve given us some visibility as to your experience with Angular, with Angular 2.0, how your team is using it, how your, you know, some of the future of the JavaScript, how JavaScript works for you guys. So that’s very awesome. So now, I had last three ask questions that are more geared towards you directly. So, and I think we discussed this once when I kind of prepared you to these questions but what advice would you give your younger, less experience self, in the things that you’ve learned along the way. What would that be?

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: Really through this process, we use ng-book 2, and we used Perl Site. And between those two we got everything we needed. That’s probably due to the fact that we already had some basic knowledge on areas around all that, JavaScript, CSS.

Carlos: Yeah.

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.

November 28, 2016 / Comments Off on Relocating for work with Alex Castillo

Show Details

Today we have Alex Castillo on the show, and we’re going to be chatting about his transition coming from New York City all the way to California in chase of a dream job.

He’s now working at NetFlix, and we’re going to be chatting about some of the day-to-day things that he’s doing at NetFlix, but also some of the aspects of his transition and I think a few key areas that had made it better for him, or easier, that Netflix has been a part of, which I think is really important for everybody who’s interested in basically moving to another part of the country or employers who are interested in hiring people from other parts of the country.

So without further ado, let’s welcome Alex.

Show Transcript

Carlos: Welcome to Tech People, where real life tech partitioners share their work experiences.

Hello and welcome to another episode. Today we have Alex Castillo on the show, and we’re going to be chatting about his transition coming from New York City all the way to California in chase of a dream job. He’s now working at NetFlix, and we’re going to be chatting about some of the day-to-day things that he’s doing at NetFlix, but also some of the aspects of his transition and I think a few key areas that had made it better for him, or easier, that Netflix has been a part of, which I think is really important for everybody who’s interested in basically moving to another part of the country or employers who are interested in hiring people from other parts of the country. So without further ado, let’s welcome Alex!

Carlos: Alex, thank you so much for coming on the show. How are you doing today?

Alex: I’m doing great. Thank you! How are you?

Carlos: Doing good, doing good, so you know, I’ll be looking forward for having you on the show for a while.

Alex: Thank you! I’m very honored to be here.

Carlos: Alright, so Alex, you’ve been travelling a lot for conferences and stuff. Tell me a little bit about that. Where have you been and what conferences?

Alex: Yeah. So, I’ve been going to conferences mostly to talk about a project that I called Neuro JavaScript that I can tell you about. But I’ve been so far this year to Utah, I’ve been to London, I’ve been to Spain. I did talk about it in New York in a couple of places including the United Nations, and the Microsoft Office. I think I have one more talk and this one is going to be in Singapore later this year.

Carlos: That’s very very cool. Alright, so, for those who don’t know you. Tell me a little bit about your background, and how did you end up in tech?

Alex: My background. Yes, I’ve been doing software for a long time but it really started when I was 15 years old, and I was just creating websites just for fun. I had a band back then and I wanted to, you know, kind of like have a press and so. It was more like a hobby fun kind of thing, and then it kind of evolved when I started getting people to ask for like favors, “Can you build a website for me??, until it kind of became a business. My background, I guess I did go to college for design so most of my engineering skills I got through time by just building projects, and just self taught, and you know, by just working on things. But pretty much, I’ve been working for, I did work for an agency for a few years, two or three in New York. And after that, I switched to a more product like environment where I worked for Grubhub and now, Netflix.

Carlos: So at some point, and I know that this is, you told me this in the pre-interview was that you, at some point you had kind of a fork in the way where you could choose design versus engineering. What make you picked the engineering part? Or the, it’s like some, it reminded me by the way of The Matrix, the blue or the red pill.

Alex: Yeah, so I was first out of college and I was looking for a job in New York and I wasn’t really thinking what I wanted to do. You know, I was just putting my skills and just applying for some jobs I looked interested in. At the end, when I had to make a decision, I could choose between being a designer for an agency or a software engineer. To be honest, I really like solving problems, but one of the big things that I took into consideration was the environment and the type of people. And I don’t say it because of the interim, just saying because of these companies, you know, and what I was exposed to. So, I had really great interview process at DOOR3, and it felt like the right thing, and I still don’t regret it.

Carlos: That’s awesome. So, you work for Netflix which really needs no introduction. But where in Netflix do you work, and what does the group do, and what are you directly responsible for?

Alex: Yeah, sure. So, I work for the devices org. In my team in particular is the partner platform. And what we do is that we create and work on the infrastructure to allow Netflix to be run on any device on the market. And we’re talking about smart TVs, phones, tablets, game consoles, setup boxes. So my team works on applications and services that support all of these ongoing processes for partners to be able to put Netflix on all of their devices.

Carlos: So explain a little bit up on that so, you guys are working on the software itself of the devices or you guys are working with the hardware, or the SDK. I’m just curious. That sounds super interesting.

Alex: Yeah, so at Netflix we touch everything and there are teams that definitely, mostly the one that work on the, let’s say the SDK. The ones doing testing they have to touch both hardware and software. My team in particular works on the software so we take the Netflix SDK and we allow for partners to, and we also help partners to install that SDK, and our platform basically enables big part of that process. So a lot of things that happen before Netflix gets to the actual end user.

Carlos: Got you. One of the things that I wanted to touch on today is, so, there might be a lot of people that are in the similar situation as yours where they might be considering moving from one side of the country to the other, like you move literally from one end to the other. And I think it would be interesting to talk a little bit more about that. What’s been the hardest thing about that? Has it, have you found that. I’ll let you answer that. What’s been the hardest thing and what’s been kind of the best thing about it?

Alex: Yeah, so I recently relocated from New York City to San Jose, California. And definitely, you know, there’s a lot of things involved in a relocation process including wrapping things on. Let’s say where you’re moving from, the apartment, if you have a lease, things like that, and of course finishing off what you have with your other job. One of the things that I really like is that Netflix has made it very easy for me. They pretty much took care of everything, from New York to the West Coast. Well, I guess the biggest thing is kind of like I didn’t have to drive. More like the 8 years that I lived in New York, only if I had to, you know, like go upstairs or something. But day to day I didn’t have to drive. So now, I’m like driving everyday but the weather here is amazing so, that’s definitely one of the things that I really like. The people are nice. It has been a great experience so far.

Carlos: So what sort of, if any employer out there is. I think it would be valuable to share with them some of the pluses that you’ve, or some of the good things. And we don’t have to go into details but at a high level, what, if you could itemize. What are some of the positive things that you’ve experienced let’s say with Netflix that other employers might take into consideration when hiring somebody from another part of the country and having to relocate them? What do you think has played into your, into having a good experience.

Alex: I think it’s the fact that Netflix was very aware of anything I would go through during this process. They are very experienced. They move people from all over the world so, small things like temporary housing and temporary car rental they help a lot because they take away one more problem. Also small things like they gave me a two day tour of the like Silicon Valley area, and show some apartments just to help me find a place. So in general, it’s really putting yourself in the shoes of the person that’s going to be relocated, and thinking how can we make this transition as smooth as possible. For temporary housing, temporary car rental, apartment tour and one of the things that I really enjoyed was just that my team took me out for lunch so I could like meet everyone in an environment outside of the office, and that was great.

Carlos: In terms of ramping up and I think this is something that you and I talk a little bit on. What has that been like? So I think one of the biggest fear of somebody in your position of going into a large company might be, “Well, I know what I know how to do but I don’t want to disappoint anybody?, right? Like you’ve now got somewhat of a price tag. You’ve got to prove your worth, right? How’s your experience being in terms of ramping up? What sort of, and you don’t have to tell those in details, but give us an idea of the assets or the process that you’ve had to ramp up, and maybe that something that we can learn from.

Alex: Yeah, so part of ramping up involves really being exposed to the technologies that Netflix uses that talking about like this Tag and let’s say Node. I was very comfortable with Node and there are a lot of Node services going on in Netflix. So just being exposed to the technologies that you’re going to be working with, and also let’s say Angular. I already have, you know, significant amount of experience with Angular so I felt like we’re at home. Like all the tools, let’s say Jenkins and just like everything felt very familiar to my previous job. And one of the things that I really appreciate is that at Netflix there is an engineering boot camp where they actually walk you through how to spin your, let’s say your service with continuous integration and with multi data centers and like the whole shabag. And they just walk you through that and make sure that you kind of know the paved road. That’s what Netflix call it. It’s like the way that they’ve proven things and that they know they have the most amount of information about. So lots of resources, lots of documents to read to ramped up but I would say mostly is that the technologies and the tools I felt is right at home.

Carlos: So you mentioned Angular and I know that you’re pretty big on Angular. How have you been involved with the community and I know that you’ve known the community and also you’ve contributed to Angular. Tell me a little bit about how did you get started with that? What were your first steps to get into that world?

Alex: I think it was back in 2012. I was working for DOOR3 and we were kind of like doing research. I was task with like picking the right tool for the job. And I checked a lot of frameworks. Angular was one of them and back then Angular was not as big as it was today. It was actually, it wasn’t a big deal, right, but it was out there. So I gave it a try and I really liked it. My first impression was that this thing is great. So I’ve tried to build a lot of projects with Angular, let’s say probably over ten or more. I kind of like had this realization that I was borrowing a lot of peoples work. We are talking about thousands and thousands of like main hours of. Not only the Angular team but also people that were working on this third party modules that I was using. And I kind of have felt that I wanted to be part of something like that. I also wanted to give back so I started just giving talks. And about Angular, I was invited to the Angular meet up in New York but then things got a little bit more, let’s say, real when it comes to contributing when I was accepted to speak at NG Conf earlier this year. So to be honest one of, I started contributing to Angular 2.0 when I fixed some bugs. I remember one of them was related to the Shadow DOM. But I think my biggest contribution is probably that I wanted all the people to contribute as well so I created a program called “ng-contrib?. And I gave a workshop at NG Conf. I gave a small talk just to show people that it is not as intimidating as it seems. I tried to like break down the process of contributing from like walking you through how to setup your environment to made request and follow-up from there on. So those are the things that I’ve been getting involved with Angular. And after that we now been given talks about let’s say data visualizations in Angular 2.0 and have contributed one third party module for Angular 2.0 for a native push notifications.

Carlos: So you’re very big in Angular 2.0. What do you know about like the Angular implementation at Netflix? Is Angular 2.0 implementation to be specific, is Netflix, do you see it going there? Do you see Angular 2.0 in the future?

Alex: So Netflix has, part of the culture is freedom and responsibility which means that you can choose the tools that you want and you are accountable for it, you know, and responsibility to basically deliver using what you think is the right decision. Angular 2.0 is an amazing platform and I’ve been using this since like the beta versions, and now recently the actual version 2.0 final. And I can see tons of value in Angular 2.0 and I can see tons of value using Angular 2.0 at Netflix. And again, you know, having people that also are able to see that and by using, you know, the freedom and responsibility culture at Netflix I can definitely see that potentially happening in some of the projects. There is definitely some Angular 1.0 today.

Carlos: That’s very cool. And I know that you’re very big on, and we talked about this at the beginning of the podcast this Neuro JavaScript. Is it a framework? How do you describe it and tell me a little bit more about it. What is it about?

Alex: Yeah, so, Neuro JavaScript. Neuro JavaScript is a project that I started working on that is basically using JavaScript to support Neurotechnologists to basically try to understand the human brain a little better, right. So, I’ve been working with OpenBCI which is a company that has created an open source EEG headset that allows you to basically capture brain waves. And I’m using Node, the OpenBCI SDK and Angular 2.0 to right now visualize brain waves in real time in the browser. And you know, people of course ask, “What can you do with it? I mean can you start like controlling things?. And the sure answer is like in the future. Yeah. We will be able to interpret some of these electrical signals and make sense out of it.

Carlos: Wow!

Alex: Applies to machine learning probably. Right now, I’m in the first phase which is visualization. I want to be able to see what I’m dealing with before I started experimenting and trying to interpret. So I’ve been kind of like evangelizing and going to multiple places and expose people to this idea which I think is great to be able to take JavaScript, the skill that so many people have, and use it for something that could potentially impact so many industries including, you know, the medical industry.

Carlos: That’s very very interesting which actually leads to my next question. So right now you just started at Netflix of course so you’re relatively new. You’ve been there for what now? Two months?

Alex: Yeah, two months now.

Carlos: About two months. What is in store for your future? And I ask this, you know, other engineers that are, that could reflect themselves kind of, in your kind of level experience and years in working. You’re a senior engineer now at Netflix but where do you see your career going? What are you envisioning and how do you intend to get there?

Alex: Oh, wow, very difficult question. So let me give it a try. Where do I see myself in the future? I want to say that when I see myself in the future I want to see me still solving difficult problems that are going to add value to the organization that I’m in, Netflix. And I want to be able to take things to the next level and make sure that that experience of making Netflix ready, or making devices Netflix ready it’s definitely the best experience any partner could ever have.

Carlos: That’s so great.

Alex: And, you know, when it comes to Neuro JavaScript I want to be moving things with my mind.

Carlos: That’s awesome. Alright, we’ll have three last questions for you. Oh, actually I think we’ve got two left. What’s the book you would recommend and you could recommend more than one. What’s, maybe a couple of books you would recommend to our listeners?

Alex: I would say that my favorite book so far has been One Simple Idea by Stephen Key. And that is because I have a very big passion for product development. And Stephen Key basically works you through how to get a simple idea, doesn’t matter how simple, to basically the market, and how to work with licensing, and how to those patent the process work and all that. And since I’ve been to that process myself I really appreciate it all the insights I could get from this book. So I have read it a couple of times and probably would read it again. Another book I started reading as I started speaking more in public is Talk Like Ted. It helps a lot to know from people with a lot of experience to tell you a lot of the things that you should consider in order to give a successful talk. And I’ve been using those techniques in my talks to try to do the best work that I can.

Carlos: If you can send me those, the link to the last one so that we can share that on the show notes. So if you ran into yourself right back when you’re in the decision making moment between design and engineering. What would you advice yourself to, you know, I was, you’ve seen where you’ve been. You learned what you learned. What would you tell yourself?

Alex: I would say, keep doing what you’re doing which is basically doing both even though more engineer on the professional side. I kept doing design for site projects for friends, and even just for like my dad for example. I used we have back in New York. So those skills, they complement each other in an incredible way. And I think part of my success is because I understand user experience. And I try to apply those principles in software engineering. So I guess big picture advice is that, of course, the more knowledge you have the better. But those two in particular they complement each other in an industry that is, you know, where amazing things are happening.

Carlos: Alright Alex, this has been an amazing interview. I want to thank you so much for coming on the show. But I still have one, the last and the most important question for you. How can people find you, find your work, find Neuro JavaScript and if you’re the one to get in touch? How do they do it?

Alex: You can go to my website which is www.castillo.io. In there you can find my work and also I have blog post about Neuro JavaScript and some of the things I’ve been working on.

Carlos: Alright, well this has been another episode. Alex, I want to thank you so much for your time today.

November 18, 2016 / Comments Off on Modern Application Deployment Tools with Gleb Bahmutov

Today we have Gleb Bahmutov on the show. You should know that Gleb holds a PhD in Computer Graphics. Also, he’s a Senior Software Engineer at Kensho Technologies, and is one of the top experts in the world when it comes to JavaScript. We’ll be talking a little bit about the tools that we use to deploy the applications we build with JavaScript.

Without further ado, please welcome Gleb.

Show Transcript

Carlos: Hello everybody, today we have Gleb Bahmutov on the show. You should know that Gleb holds a PhD in Computer Graphics. Also, he’s a Senior Software Engineer at Kensho Technologies, and is one of the top experts in the world when it comes to JavaScript. He’s got a ton of experience working with Angular JS, React, Grunt, Office Grip and D3. Ultimately, he’s one of the smartest guys I know.Today, we won’t be discussing JavaScript in depth. We’ll be talking a little bit about the tools that we use to deploy the applications we build with JavaScript. Today’s topic is Modern Application Deployment Tools in 2016. Without further ado, please welcome Gleb. Gleb, it’s a pleasure to have you my friend. How are you doing today?

Gleb: I’m excellent. Thank you Carlos. It’s good to be a guest on your podcast.

Carlos: Thank you so much for taking the time and having this conversation with me. Gleb, for those who don’t know you, tell us a little bit about yourself and what it is that you do at Kensho?

Gleb: I’m a Computer Software Engineer. I finished with an advanced degree from Purdue University, ten years ago. I worked in computer vision field for a while, doing laser scanners and Google Street View, for another company, image processing. Eventually, I switched to data visualization. Worked at Math Works for a year and then went back to start ups and now I’m at Kensho. Kensho is a small start up. We’ve been around for three years. And we do financial analysis based on real events. For example, you want to see how cold weather affects price of bananas. You can easily analyze it in a couple seconds using our web app.

Then, we use all sorts of statistical analysis and machine learning to actually derive interesting facts and tell you, Invest in this particular group of stocks because some event is going to happen or not going to happen. At Kensho, I do front end development mostly. We have python backend and then, Angular + React Frontend. We’re just a standard set up for statistical start ups. I build original Angular 1 Front End and now I mostly work on tools that help you with testing, with maintaining code bases, with deploying code reliably and so on.

Carlos: That’s very interesting what you guys are doing at Kensho. Being able to… I mean that’s a fascinating product. In terms of … if you could allude a little bit to the story of the company. How did you guys come to start working with this issue? I know that this is probably not the area of discussion for this particular podcast but it sounds interesting. How early did you start over there?

Gleb: The company has been around for three years. I’ve been there for two years and six months already. I was there from pretty much, almost the beginning. The company has started … we have a couple of very smart people and a couple of ex-Kayak and ex-Google Engineers who moved back to Boston and have looked at financial industry, because we have people with economic backgrounds as founders. The question in economics and financial analysis is that yes, I can analyze time share estate, whatever Bloomberg terminal gives me. I never know if a major political event, how it’s going to effect my particular stock. People ask this question, Well if an event happens, how did it usually, historically effected the price of the stocks?

You can solve this problem, you can go back to our archives and pull the data and the statistical analysis, but that’s a custom software. Every bank and major hedge fund, they have a software, except it’s a custom programming assignment every time. It takes a couple of weeks because there are so many questions that they want to answer. By the time you get an answer, it’s obsolete.

Kensho decided, Well why don’t we just implement this as a simple, almost like Google search, where you say this event against this group of stock instruments or financial instruments. In a couple seconds it gives you all statistical, all historical context, and all the statistical measures. You can make a decision and say, Yes, this makes sense. Or, No, there’s not enough statistically significant. This allows you to, for statistical analysts without programming background, to actually have a gut feeling and immediately see historical answers.

Carlos: One of the things that comes to mind about the particular topic, which I’m going to get to in a second, is the cadence in which product is released, right? In which we work in products and sprints and so forth. How does working with financial … in a financial business where you’re doing financial data and that kind … how important is it to do … to have constant deployment? How important is that of your work flow? Is that something that you guys are worried about? Is this something that is important to the organization?

Gleb: We are probably on the faster deployment cycles than most companies. So for historical comparison, I used to work at Math Works, where we had only two releases a year, for desktop software. Spring and fall. The scientific process in software has to be absolutely right. There’s extensive testing. Extensive work with algorithms, just to make sure we implemented the features that clients want. Then huge amount of testing because scientific software that computes, Hey is this airplane going to fly or not, has to be correct.

That justifies a longer list cycle. On the other hand, for a start up in any field, you’re still searching for that answer. You don’t know what client is going to pay for, right? You have some ideas. You talk to a client and then you implement something. Then they give you feedback and then you quickly adjust and install the new version. For you, the priority is not on getting where the answer a 100% right, because we don’t know the right answer yet. The priority is on showing the feature to the client and getting feedback. I need to write it quickly.

Right away we try to concentrate on deployment at least once a week. Now we are usually deploying twice a week. Which I think is pretty fast. It’s not as fast as other companies have done. For example, companies like Etsy, Kayak, I think does the same. They deployment pretty much hundreds of times per day.

Carlos: Wow.

Gleb: Right? It’s extremely fast, but it requires a huge investment in testing and automation pipelines. We are not there yet. Of course, our stuff is automated. We still have a lot of manual testing and verification. We deployed, let’s say once a week.

Carlos: All right. I think this now it’s time to you know talk … now that’s what we’re going to be talking about. The reason why I’m asking all these questions is because I think that ties very well into what deployment is like. Today, we’re going to be chatting about the current state of application deployment and hosting. How that looks and some of the different tools that Gleb is using, that you’re excited about. I don’t know if you’re using all of these for work yet, but I know that these are things that you’re excited about. For those who are not familiar with the hosting world and how modern apps are deployed … I know we just alluded a little bit in terms of the speed and cadence. Can you describe how it used to be and what it is that we’re looking for today and in the future? Then, we’ll talk about the different tools.

Gleb: Absolutely Carlos. About four or five years ago, I worked at a company that had a bunch of servers that we rented from a company. We had pretty much rural access to a server. Every month, we would have a new version of software that we worked on locally. We would log into those servers. We would run some scripts that would pull the new version of the code, or compiled binaries and that would restart the server. We would do it one by one so that we don’t take everything.

Immediately as we deployed, we would start testing you know whatever the services we had. Web applications and database versions. Immediately we’re like, This version seems to be working. This particular deployment, this particular service seems to be down. We would go back and try to de-bug or why it’s not working there. We tested it in our environment, on our machine, before we actually deployed. There would be a lot of trying to tinker and trying to run local scripts and do everything manually, for example.

That was five years ago. We had to rent servers, maintain it, log in, manage the deployment process. A huge pain was to create a database, because there was so many dependents between the data and the server so which one do you upgrade first? It was then manual, kind of error-prone process that nobody liked and that’s why we only deployed maybe once per month. It was bad. Nobody liked that. You needed a separate team to do that. At other companies, you usually have people who actually … who’s whole job title was data opps, right? Or just opps – operations.

Carlos: It feels like it’s … we’re talking about it as if it was long ago. It’s still pretty prevalent.

Gleb: Yes, absolutely. When I say, it used to be that way. It was for me. Other companies still maintain it. If it makes sense or it doesn’t. For historical reasons, for tools reason. Whenever I say, It was long time ago … first of all, a couple years ago, may be an eternity, but it might not be that long ago. Right? And second of all, that was my experience. Other people are completely fine with the process and might be absolutely content versus … Take it as with a grain of salt.

Carlos: Absolutely. In one of the things that happened back there, that we were using, there was a lot of virtualization we were dealing with. It was almost like the industry moved in a forward process towards virtualization. As we all know, virtualization is like, yeah of course, virtualization is the thing. It’s actually not anymore. Virtualization is a little … it’s becoming dated now by some of the tools that we’re talking about. I think the first one to talk about is Docker. What is Docker? How has it made virtualization or the dumb-u or the dumb-o … I forget which one it is … the virtualized server. How has Docker made that somewhat obsolete?

Gleb: A couple of years ago this company Docker, with this adaptation of open source technology appeared. What Docker is, it’s a very, very light weight virtual machine. Extremely light weight. As opposed to running a virtual box, which absolutely creates the whole operating system on your other whole system. Docker is so light weight it can only run it’s own little light-weight containers. Usually, there is no user-interface. There is no network access. It’s very, very limited and you have to use certain things. What this allows, is to run pretty much anything inside an isolated container. Nothing that … little Docker machine … that you run on your local PC or Mac or on your server, this little virtual layer, can run multiple containers. Simultaneously with very little hardware overhead or memory overhead.

It doesn’t give you full virtual machines. It gives you very light-weight, virtual isolated containers. This happened in the last two years. This completely changed the way I think the development is done, for some companies that use Docker. How, for example, for us it changed how we develop software locally and how we deploy it. What happens is that now, instead of having a specific requirements on the server, let’s see I need a Windows 64. This particular version or I need Linux, one, two, twelve, fourteen or sixteen. All I care is give me …let’s say a Linux machine and a Docker machine running there. Then I’ll put my containers and they’ll run the same.

On my local development machine or my build machine at my company, we would build this little Docker container and a Docker container might have a database running and ready. Another Docker container might have, let’s say my server application. Now a container would have my static website with the server that just serves it. I’ve prepared a little Docker containers. They’re called images. They pre-compiled virtual images. I can connect them and I can say my server container will talk to a database container and will pull data from that.

This runs completely isolated from whatever the rest of the machine is running. I can have multiple versions of a database. The same database, but multiple versions. They will not conflict. They will not override each other’s setting. I can literally run ten versions of a database on the same machine, just like nothing happened. Then, I can take my Docker images and I can copy them to the server. The server is running, the Docker machine. This little virtual host. This tiny layer. The server will start running my containers the same way as my local machine.

Me, as opposed to logging into the server. Pulling the binaries. Starting it on the server throughout any virtualization. Now I can just ship pre-built images and they’ll start running. In theory, they should behave exactly the same, as if they were running on my local build machine. Does this answer your question, Carlos?

Carlos: It does. Something that is interesting, is this concept of the containers. One of the things that you and I discussed earlier, was how some of the parallels between the software and the shipping industry. Can you expand a little bit on that? I know this was something that you were pretty interested about.

Gleb: If you think about global trade. Right? Whole trade used to be pretty insignificant up, until maybe 50 years ago. The biggest problem with global trade at some point, was a loading and unloading ships in the dockyard. Imagine a giant ship coming from Asia into the Los Angeles port. Imagine if there were no containers and everything was loaded just there, in the bowel of a ship.

Now, you need a huge amount of people to pick things up. Put them on a crane. Move a crane. Load it on the trucks or freight trains and then continue shipping. About 50 years ago, this whole thing just got scraped over night, you can say. The adoption of inter-modal container, the standard metal container box that we see everywhere, happened in just a couple of years.

The only things that kind of slowed it down were agreement on the standard, what container size should be. Once people adopted the same 25 and 50 feet containers, the whole industry just switched because economically it cuts out a huge cost. Right? The manual labor to unload a giant container ship now is a small part. Maybe a day, maybe two days because the cranes can just pick up the standard containers.

It used to be weeks, if not months, to unload a large ship. Then everything got standardized. The same container can be on a container ship. Put on the bed of a truck. Put on a freight train. Moved around the globe for penies per mile.

Carlos: No wonder the Docker icon is a whale, carrying a bunch of shipping containers, huh?

Gleb: Exactly. For Docker, it’s the same standardization. Every app, no matter what it requires, what it does, it’s placed in this container, isolated. The container runs the same way on any machine that has Docker machine pre-installed. Docker machine, yes it’s custom if you have a Mac or Windows PC. It will be a different Docker machine. This little layer. The Docker container will run the same way. The same Docker container will run the same way on every machine.

Carlos: Matching a few Docker containers in a single machine, sounds simple, but how does Kubernetes … I’m just going to call it that … I know that that can have different ways to say, Kubernetes, Kubernetes. How do you use Kubernetes as a way to ship them to the cloud and manage that deployment?

Gleb: What we do is, we development using Docker Locker. That allows us to pretty much standardize the boot-strapping process. It removes the whole excuse, Oh, it works on my machine. I don’t know what it doesn’t work on the testing environment or on the production server. Locally, let’s see I have five containers. Let’s say I have an application, maybe two databases of different types. Maybe I have a front end, so let’s say four. It’s very easy.

You see your list and you say, Okay, I want to restart this particular container and just replace it with a new version. In production, you probably need more. For example, you could be running for load balancing, five instances of your Docker containers, for a server. You might be running a couple of databases just so that you have a cluster that’s more robust, that doesn’t go down. You might have additional services, like Load Balancer and a proxy. Maybe you have extra services, like a log-in or metrics, also running inside different containers. All the sudden, even for a simple app, we’re talking maybe five, maybe ten, maybe a hundred containers.

Imagine, even writing a single file that kind of describes it, the configuration, it’s kind of tedious. Deploying everything and making sure that everything runs and all the things are routed correctly, and overt IP’s addresses are set. It’s tedious and manual and error-prone. People started writing tools that allow you to manage groups of these containers as a unit.

One of the tools that came out was called, Kubernetes. The things is, it came out out of Google. Kubernetes is just nothing but a management system, that allows you to deal with a group of Docker containers in production, or in staging, or in the environment you want, as a single entity. You describe, Okay, this is my application, it needs ten server containers. It needs a load proxy, and a database. Then you can say, Okay, just deploy it. That’s it.

Now, in a couple of seconds you get a whole new installation or a whole new entity of your containers, running in production. Then you get URL. Then you can use it. And what’s interesting about Kubernetes is that it allows you to do things, like rolling deployments without any pain. The rolling deployment means … let’s say you have an application running in production. You have ten servers and a load balancer.

You want to deploy a new version. Instead of you doing things one by one, Kubernetes manages this process. It brings a new stack of … we have a new version. Then, it one by one, takes down the previous version, until you have only the new version running. To your clients, nothing has changed, because the deployment was just one by one box and it rolled. There was never interruption in service and you don’t have to do these separations manually. Kubernetes makes it very, very simple.

Carlos: One of the things that the industry lead to also, was a little bit of that evolution of the industry, where services suggest Heroku. Of course there is really high costs. Especially running large applications on Heroku. The other tool that I know that you wanted to talk about is, Dokku, because it allows you to run somewhat of a Heroku platform. How are you using that? How does it compare to, say you’re running the same number of apps on Heroku versus running on Dokku? Using your own virtual instances and using your own Docker?

Gleb: It’s an excellent tool. Heroku is excellent. I use them a lot. It’s a platform you can get a server in a cloud in a matter of seconds. Then you can deploy application to, let’s say your server, in a matter of seconds. It simplifies the whole management of servers. You can order more instances. The problem with Heroku was always the cost. They have a free tier where it goes to sleep, you’re out of the clear.

If you want to have your server up and running 24/7, you … at least at some point, you had to pay at least $50 dollars per server, per month. Which, if you think about it, it adds up very quickly. You have a couple of demos that you want to have in the cloud. Maybe you have your personal website there. All the sudden we’re talking hundreds of dollars per month, just to have very simple apps.

The problem is, because you’re not usually utilizing the whole server, right? You have something running there, which probably uses a tenth of a percent. People were looking for a solution. A new open source project appeared, probably less than two years ago, called Dokku. It sounds like Heroku, and it’s combination of Heroku and Docker … Docker and Heroku. It’s your own mini Heroku, but you can install it on any server. It’s all open source. It’s just a bunch of bash-scrapes. It’s a server that can accept your Docker containers and can run them for you just like individual apps, all isolated. If you ever used Heroku. Switching to Dokku and running it yourself on the single server is trivial. Okay?

It even accepts the same formats. It’s pretty much the same process. If you already have a single process or if you have Docker files, you don’t have to, but if you have it, it supports it. You can deploy ten different applications or ten different containers on the same server that you can order from Amazon or Google cloud or Azure. Install Docker and you have your own personal-

Carlos: Heroku basically.

Gleb: Heroku.

Carlos: It’s impressive how it’s evolved so quickly. From having to set up your own servers. Doing now … that we’re doing all this. The big thing … I think the next tool we’re going to talk about which is Site Now, seems very interesting. It somehow helps you … and this is just … I’ve never used it, but from looking a little bit into it, it simplifies a lot of these layers.

Gleb: I think it does simply things a lot because your application now is completely isolated from the environment. If you want to communicate with another container, you have to go through IT and a port number. Which there are tools like Kubernetes or even Docker, allows you to simplify. It’s never things like, Oh, we will communicate for a socket or through a file on a disc. No, nothing like that.

Now it became very standard. It’s all HTTP protocol. It’s all one container talking to another container. If a container goes down, the Docker machine will restart it for you. You don’t have to worry about that. If you have a Docker container running locally, talking another, you can deploy a pair of them to production. They’ll still talk to each other. They’ll know how to find … through a config file.

As soon as you got the first hurdle of setting up a server or singing up to an account, Kubernetes, pointing on your Google cloud platform. After that, everything is pretty standard. You know you’re only making containers, you test them, you ship them. That’s it. It makes no difference if it’s a Google platform or Azure or AWS. They’ve become very interchangeable. I know Carlos, we discussed cost before.

Carlos: Right.

Gleb: Now everything is so standard and you can take your business elsewhere, the cloud providers now have to compete on cost first.

Carlos: They are being further commoditized basically.

Gleb: Absolutely. They used to say, Well, if you’re running Heroku you have access to all these plug in services. Like logging or error monitoring or databases. Well guess what? For error monitoring, I can run open source application in a different container and just can deploy it together with my Docker containers. I don’t have to depend on anything else. I can have my own stuff running in parallel with my actual production app. I’ll have my error monitoring. Or my logs on my databases.

I don’t need specific services that will be different between provider to provider. I can have my full featured app composed of multiple Docker containers anywhere I want. If someone raises the price. I’ll just move. In fact, I could be running two different cloud providers, just for redundancy. If the AWS goes down in Virginia. No problem. I have Google cloud probably running in here.

Carlos: Yeah, you have so many different options because it’s easy to take your containers and move. Especially with all these tools that we’ve got now.

Gleb: Yes.

Carlos: And we’re not dealing with FTP anymore. I mean, if you’re working with something like Word Press, you might still be working with FTP and/or SFTP hopefully. There’s so much to be explored with the deployment world. Ultimately what this helps is, companies like you guys deploy more often.

Gleb: Right. Right. Right now our current goal or we have a tool. It’s a configuration tool that takes in a single configuration file. Then it controls Kubernetes, based on that. We hope to open source it pretty soon. It allows us with the single push of a button to deploy the whole stack of our services in a new environment. Completely isolated from previous ones. We have a pretty complicated set up. We have lots of languages and lots of databases.

With single … each community can have it’s own full stack of our servers started in a matter of seconds. Imagine if you’re trying to do testing. If you’re trying to deployment. Having each deployment being completely independent, completely fresh, right? It’s a huge, huge win.

Carlos: Yeah. I know it definitely sounds where the future is going and where we have to go. Gleb, I think we’ve touched on all these tools. I know you had kind of an extra one. A hidden surprise one. Which one is that?

Gleb: The last tool that I want to just mention … everything before that works in a company. Or Docker, we use internally. Or, I used for my personal projects. It still requires a little bit of work, right? It still requires having a server. Pushing things around. Running commands. There is one tool that appeared a couple of months ago for personal projects, that I try to use from now on. It’s from a company called Zite at Zite.co. C-O. The tool is called, Now.

You run this tool in your terminal. It’s just a deployment tool. If you’re in the project’s root folder and your project is NOGS or has a Docker file now. You just call the command, Now. In a couple seconds, you have a fully functioning HTTP2, HTTPS. Secure, unique URL, somewhere in the cloud, where your application is running. It’s unbelievable.

Once you see this in action, inside that call that have a little animation. It’s so fast, because they are smart about catching dependencies. Every time you deploy your project, you get a fresh URL. You’re previous deploys are still working. They’re still in line, but you get the fresh new deploy for your project.

The simplicity of deploying your web server or your util-application API, has never been lower. It literally changes your whole perspective on how many times you can deploy and test and do other things. For a personal development project, or for a small company, Zite has delivered things and knocked it out of the park.

Carlos: We’re definitely going to make sure that we’ve got the right links for all of these tools that we’ve got. That we talked about today on the show notes. Gleb, my friend, I want to thank you so much. This has been an amazing interview. Probably the most important question, because I know that you are a … you write a lot … you’ve got … I was just checking out your blog … you’ve got years worth of articles. How can people find you and find your work?

Gleb: I hope we have a link because I don’t think people will remember my last name. It’s spelled weird. Luckily, I have my website at glebbacmotiv.com and slash blog … is for my blog. My personal website is glebbacmotiv.com, has the links to all my open source projects, to my conference, videos and slides. I hope it will have my personal website in the show notes and then people can find me from there.

Carlos: Absolutely. We’ll have all of that. You’re talking … you mentioned earlier that you’re giving a talk at Angular Connect, in a couple of weeks here?

Gleb: Yes. In September, going to London. It’s a second year in a row. Speaking at the largest Angular Conference in Europe. My most … my topic will be security. Any time you run something, you should worry about security. People breaking your stuff. We just know with Dropbox got for a website … not a website, but password database files leaked. You do have to take security seriously. I’ll show some of the ways your website can prevent some common forms of attacks.

Carlos: All right. I might be there. I don’t have any promises. I think we’re going to be sponsoring Angular Connect this year. Hopefully we get to hang out.

Gleb: Oh, absolutely. Say hi to Angie Book team for me. I hope to see you there and chat and have a beer or something.

Carlos: Absolutely. All right, Gleb. I want to thank you so much one more time for coming on the show and hope to chat with you soon.

When we started to learn to code, we were taught to write in a particular way or style. In Angular, you have to use different types of directives as part of the language. Today we are showing you three ways on how to use those different types of directives.

November 10, 2016 / Comments Off on Mastering Innovation and Execution at Autodesk, with Minette Norman

Today we have Minette Norman on the show. Minette is a Vice President of engineering practice at Autodesk. In today’s episode, we will discuss how engineering within large organizational functions. We’ll talk a little bit about Minette’s role and how it’s been vital in the company’s strategic goals and staying current, again with the competition and so forth.

It was really an honor to have Minette on the show, and I hope you guys enjoy.

Show Transcript

Carlos: Thank you for tuning to Tech People, where real life tech practitioners share their professional experiences.

Hello, everybody. Today we have Minette Norman on the show. Minette is a Vice President of engineering practice at Autodesk. In today’s episode, we will discuss how engineering within large organizational functions, but most importantly, how it stays current in today’s market, and how it actually has sustained current given that it’s a 30-year old company and it’s the forefront of the tools that we use to create content, whether it’s for architecture, for movies, for- anyways, there’s tons of media that is created with Autodesk’s product, and it’s one of the leading companies in that area. We’ll talk a little bit about Minette’s role and how it’s been vital in the company’s strategic goals and staying current, again with the competition and so forth. It was really an honor to have Minette on the show, and I hope you guys enjoy.

Hi, Minette. Thank you so much for coming on the show. How are you doing today?

Carlos: All right, so Minette, for those who are listening in and they don’t know you, tell me a little bit about your background. How did you end up in tech?

Minette Norman: I have what is probably an unusual background for tech. As I told you when we first met, I studied drama and French as an undergraduate, and I didn’t plan a career in tech. I was led into tech sort of by accident. After I graduated from school, and I realized that acting was not going to be my full-time gig, I used my French skills and I got a job at the French Trade Commission in New York City. That’s when we started using PCs. It turned out I was pretty good at working with tech and explaining it to others. Based on that, I decided to go into technical writing. My first job in a tech company was at Adobe back in the late ’80s, and I ended up writing the Adobe Photoshop 1.1 tutorial.

Carlos: Wow, that’s really cool. Adobe at that time, I mean, it was right at the beginning of what we know as photoshop, essentially.

Minette Norman: Yes, in fact it was an interesting time because the guys who invented photoshop, the Knoll brothers, Thomas and John Knoll, they didn’t know that it was going to take off the way it did, and they didn’t know what people were going to do with it. I remember that challenge of writing the documentation and saying, well how will people use this? No one at Adobe really knew how people would use it because it was so new.

Carlos: This might be a little outside of our subject that we’re going to talk a little bit about in a second, but back then did that have layers and kind of the way that we understand photoshop today, or was it more, I mean, I’m guessing it was way more basic?

Minette Norman: It was much more basic. It didn’t have, you know, I don’t know what percentage of the functionality it has today it had back then, but it was much more of a color correction tool, color separation. I don’t believe layers were in the first version, and yeah, it was so much simpler. Pretty primitive, but it did something that had never been done before on a computer.

Carlos: Well now you’re working at Autodesk, which is also a company that has evolved and has been very close to the hearts of creative people all around the world, especially I think everybody who’s familiar with photoshop knows what Autodesk is, I mean, maybe have to, from everything architecture stuff, then there’s the 3D work. I think we talked a little bit about that, there’s the animation side, and then of course I’m only talking about a small segment of product that Autodesk is responsible for. We’ll talk about kind of the many, many, many. For those few, right, the 3 of them, that don’t know what Autodesk is, how would you describe it?

Minette Norman: Well first of all, I think what may be interesting to people is that it is as old as Adobe. It was founded in 1982. In fact, both companies are the same age, so that’s one interesting point. The other thing about Autodesk is that most people have heard of AutoCad. That was the flagship product back in the ’80s that really transformed Cad. Our portfolio today is well over 100 products, and we span industries as you mentioned: architecture and engineering, media and entertainment. The way we describe ourselves is that our software is for people who make things, and it can be anything from a high-performance car to a skyscraper, to a smart phone or to a movie. Really, we span multiple industries with our software.

Carlos: What is your role at Autodesk? I mean, not only… I know you’re basically the VP of engineering, this is going to be all of the titles here, but what does a VP of engineering do at Autodesk?

Minette Norman: Well, I’ll add one nuance to my title, which is that the full title is vice president of engineering practice. I do know other VPs of engineering, and my job is somewhat different from theirs, so I’ll try to describe what I do. I took over this job a couple years ago, and when I took over the job I was asked in one sentence to transform engineering at Autodesk. Really what I am tasked with doing, what I’m in charge of doing, is modernizing the way we do practice engineering, how we develop software at Autodesk. There are several things that I can talk about that I’m leaving, but I am not in charge of a product line. I am in charge of engineering across Autodesk, but the engineers don’t all report to me. It’s sort of a matrix, an influencing job. I can fill you in on any more that you’d like to know about that, but that’s the short version of what engineering practice VP is.

Carlos: It sounds like your particular role within, basically transforms the way that other engineers work. It impacts their work, or their day-to-day, is that a correct assumption?

Minette Norman: Yeah, true.

Carlos: One of the things that I know from the conversations that I have with you is you work at a very macro level. For those who have not done that, it’s very hard to understand how that works, right? They’re probably used to seeing their work, whether they’re managing this group of people or they’re managing a project, or they’re writing the code or something, that’s how they see their work. It’s really hard for those who have never worked in such large company as you to understand the work at that macro level. Can you give us an example of how you affect the organization and at that macro level, maybe a brief explanation from all the way to the top to all the way down?

Minette Norman: I sit under the SVP of product. Pretty much all of the products will roll up to him, and then he reports to our CEO, so that just sort of shows you where I am in the hierarchy. As I said, not all of the products do roll up to me. I do work across engineering, and there are approximately 3500 to 4000 engineers at Autodesk, depending on how you count. Yes, you’re right, very macro. I sort of laugh when I get this question because I don’t do any real work, you know, you could say I don’t do engineering, I don’t code. What I’m doing is really trying to influence our engineering culture, above all, and to describe a little bit of where we were and the journey we’re on is that we, since 1982, largely grown through aquisition.

We have, as I said, over 100 products. Each product group sort of has its own identity and a little bit of its own autonomy, and that’s part of the problem that I’m trying to deal with today, which is that because everyone had so much autonomy, everyone went out and did their own thing. They developed their own processes, they picked their own tool stack, and now we’re trying to be a much more cohesive cloud-oriented company. We just can’t have these product silos with everyone doing their own thing. I am trying to get a cohesive engineering organization across Autodesk, whether those engineers report to me or not.

A lot of what I do is a lot of broad communication, working with other VPs in the company to get them to prioritize the work that we’re trying to do, and I would say- we can get to this when we talk about challenges- but one of the challenges I do face in my job is that there are pressing product priorities and features that need to get out, and we’re trying to balance this overcoming technical debt and changing our practices in a modern way. Those are some of the things that I’m struggling with today.

Carlos: You briefly touched on the cadence of the work that you do, when you’re talking specifically about products, but this is more in line with the macro thinking. A lot of the, say, the people listening to this show are probably thinking of their timeline in sprints, while they’re talking about day-to-day sprint, maybe they know that they’re working in a project, so whatever time duration that project has. What are some of your cycles of time, are we talking quarter to quarter, maybe are you talking year to year? How far ahead do you have to look at, and how far back do you also have to keep track of?

Minette Norman: Yeah, it’s interesting because our product groups, as you say, are on sprints, usually on 2-week sprints. There’s not a standard yet across the company. We have this mix right now at Autodesk of desktop products that have traditionally come out once a year, and now we’re trying to come out more frequently with releases. Then we have cloud products that we are releasing often. In terms of the initiatives that I’m driving, they are longer. I would say they’re not sprints, and they are more like quarter to quarter. There are things that are taking multiple years.

I’ll give you an example of something, which is that last year we decided that we wanted to move all of our source code out of various source code management systems that we had into GitHub, and really standardize on GitHub. We would’ve loved to have said that was a one-year effort and we would be done by now, but given the huge legacy code bases and competing priorities, that’s a multi-year project. That’s an example of some of the things that take much longer than we’d like them to, that I’m driving, so there’s sort of longevity to many of the projects that I lead.

Carlos: Another question that I think goes right in line with it is how does an initiative flow, like for example, this one changing to… You know, did this change? How did that come about, and how do other initiatives that you shape end up being prioritized in your plate?

Minette Norman: Mm-hmm (affirmative). I would say there are different answers to that one. The GitHub one is an anomaly for Autodesk, so we are not a particularly top-down company. We rarely get mandates that come from C-staff, and that are just mandates that come down. GitHub was one of those, and that was interesting. It was our CTO, Jack Kowalski, last year got up and basically said, I don’t care what you’re using, I don’t care how hard it is, we all need to get out of these silos where we can’t see each others’ code. We need to collaborate, and we’re going to move to GitHub as a forcing function. That one, in some ways, really helped my cause. It was easier because our CTO said that it has to happen, and our CEO agreed. That was one of the few mandates we get. That’s one extreme.

The other extreme is some of the things that we’re driving, where, for example, we are trying to put standards in place, and process standards in place around Agile, for example, or getting product teams to properly internationalize their software. That is more done by my team, just going out and working with various product teams and influencing. I would say where we get the most success is where we get early adopters who say this makes sense and I want to try it. Then once we get some wins, then we get a critical mass and we can really declare a standard. It’s sort of a bottoms-up, and then there’s a top-down, and there’s some things that start in the middle.

We had one initiative this year that was really interesting, which was that people had started using Slack as a communication tool. It was not officially standard term by IT. We didn’t have an enterprise license, but it had really gotten a ground swell, sort of community ground swell. I took that over in my team, and just said, let’s get an enterprise deal. That has been a huge success, because everyone wanted it already. All I did was get the licensing and get it all combined into one Slack instance, instead of multiple. That has really helped change the culture of the openness around things here. There’s no one way that things take off.

Carlos: Right. It is a living organism, so there’s a lot of that. You gave us 2 examples about in ways in which you’re fulfilling your mission of modernizing the entire organization. How do you impact more technical areas of engineering in the organization? By that I mean, let’s say, architectural stuff. Something that used to belong to the future, right, and it’s now in the present very much is this whole thing of the monolithic to micro-services concept. Is that an example of something that you might be in your plate now, or might be part of your focus?

Minette Norman: Well I have a peer who is in charge of architecture, and he is very technical. He is our group CTO, and they are- he and a team of other software architects, are working on establishing a reference micro-services architectural that we will use at Autodesk. It’s definitely on my radar. It’s not specifically in my responsibility, but very much aware of it because we acquired a company, I believe last year, called Magoa, and they had a really nice micro-services architecture. We’re using that as a reference. That team is trying to now scale it for use across Autodesk. My team works with the architects to make sure that we can support what they’re doing, that we have the tools to support what they’re trying to put in place. We help communicate as sort of a joint effort around this. The architecture itself doesn’t fall under my organization. More of the dev ops stuff does, however, like how we do continuous integration, continuous delivery, that’s more on my side.

Carlos: Got you, so things like switching over to containers, to Docker and all that is part of that. Another question that seems to be in line with what we’re talking about, you mentioned a CTO, but when I hear you talk about your role, you sound to me like a CTO in many-

Minette Norman: Mm-hmm (affirmative).

Carlos: You said that there’s also a CTO, like a company-wide CTO.

Minette Norman: Yes.

Carlos: How does a CTO role differ from your role, specifically at Autodesk?

Minette Norman: Yeah, I think ours is quite unique. I do know other people who have the CTO title at other companies and their job is a lot more like what mine is, but our CTO Jeff Kowalski I think is unusual. His team is really a future-oriented team. I think he likes to say he’s looking at 5 and 10 years at things we don’t even know we should be looking at yet. He has a fairly significant research team that is looking at new technologies, new trends, and things that may impact us or that we should get on top of. He also does some incubation of technologies that are not yet products, and eventually some of them do move into the product teams and get taken over and become real. Really, he’s very much more future-oriented. It was actually somewhat unusual for him to get involved in a tool decision like GitHub, but he saw that as a catalyst for really helping change the mindset and change the culture. Mostly he’s looking at way out there stuff in the future.

Carlos: It seems to me like that initiative was big because it solves some of the big issues that you mentioned initially. Probably this is a good time to ask that, what is the toughest part of your job, and what is the best thing about your job?

Minette Norman: Initially, sometimes the toughest thing is overcoming resistance, where people just say no, this is how we do things and we’re not changing. I’ve seen that shift a lot in the last year, where people are open to change and they understand that we really need to make some fundamental changes. Once you overcome the resistance, I’d say the second part that’s quite challenging is these competing priorities, and I alluded to it a little bit earlier, if we have products that need to go out and there’s competition and therefore we have to match features, but how do you get teams to prioritize some of this seemingly not as interesting work, but very important work which may be technical re-architecting? We are conducting their products that can go into something like GitHub. Those are some of the challenges.

I would say really the toughest challenge is shifting a company like Autodesk, that is 30+ years old and has been really siloed, to becoming a company that is more cohesive, that is more willing to work together, and that engineers don’t feel that they have to be the one to invent something new, but that they’re willing to reuse something that has been created by another team and contribute to it, not just be doing an open source. We’re really trying to get this idea of inter-source rolling at Autodesk, so that you don’t have to invent it, but you can reuse, you can contribute, you can improve. You don’t have to be the inventor. That’s a big shift for a company like Autodesk, so that’s one of my big challenges.

Carlos: Are there any initiatives that you can share with us and that are on your radar for, say, the next year?

Minette Norman: Yeah, we have several initiatives. One of them is getting everyone on a common, as opposed to doing your own thing, a common CICD workflow. That is in my team’s responsibility right now. One thing that we’re doing that I haven’t seen, I’d love to know if other companies are doing it but we haven’t found any yet. We are introducing into the whole CI, continuous integration and continuous delivery, another C, which is CL- continuous localization. Our customers are largely outside the US, more than 70% of our revenue is non-US revenue. Therefore, we need to translate our software into many languages. We need to deliver all of that software at the same time continuously.

We’re doing a very automated localization workflow so that can be, we integrate, we localize, and we deliver all at the same time. That’s one of the big initiatives we’re working on. Other things that we’re driving through my team is agile transformation, so agile is a little old, but at Autodesk there are teams that are still very wonderful, there are some that are quite agile and would really like to get everyone into a much more agile framework. I have agile coaches on my team who are working across the product teams. I also have technical training as part of my responsibility, so as we try to modernize Autodesk, we try to modernize our workforce. People who’ve been traditional desktop developers we’re now training cloud technology so they can do more local development, full-stack development. Those are some of the initiatives that I’m driving.

Carlos: Well, they sound like a handful.

Minette Norman: That was just the start. I could go on, but I don’t want to go on any longer.

Carlos: One of the things that kind of pop out of this is that it seems to be a decentralized engineer organization. Do you think that, first of all, is that true? Is it decentralized or centralized, and how do you think that that affects some of these issues, or how is it better for some of the goals that you have?

Minette Norman: It is very decentralized. I am the only central engineering organization and as I said, I don’t have product under me. I’m not really a full engineering organization. Very decentralized, each product team has its own engineering organization. I would say the positives of that were more in our past, in that people could really go fast and do what they needed to do and do their own thing. I don’t think that the decentralization is serving us well anymore, because we are trying to have products that look more like each other, that inter-operate better, so they’re trying to bring them all together. It would be, I’m not saying that we should reorg because when you take 3500 engineers and put them into one organization you still need to break it down, so I don’t think that’s the solution. I think the solution is really getting them to take on those initiatives whole-heartedly in terms of working together, reusing, getting into a common technology stack, getting into common practices. That’s why my group is here, that’s what we’re here for, this sort of practice organization as opposed to a product organization.

Carlos: For engineering leaders who might need tasks with similar missions or have some of the same problems that you’re facing, what would you give as some advice? What’s the biggest lesson you’ve learned that is general enough that you think could apply to other people?

Minette Norman: I would say 2 things. One is that the technology is always changing, so you can never say we’ve got it figured out. It’s always changing. I would say the lesson I’ve learned is really look outside your own company to see what other people have done, and borrow what you can, don’t reinvent the wheel as much as possible. From a technology perspective, I try not to do home-grown things as much as possible. Sometimes you have to, but it’s really great if you can use open source or a commercial solution so you’re not forever investing in a custom solution.

That’s not the most interesting thing in terms of advice. What I’ve learned is that the technology is constantly changing, you have to stay up to speed, but the real challenge and the real thing you need to pay attention to, as any leader, not just an engineering leader, is the people and the culture, and the environment that you’re creating for your engineers. I think too often in engineering, we focus only on technology and we forget about how important the culture and the people are. You really can’t get anything innovative or revolutionary done unless you have amazing people who are engaged, who feel comfortable speaking and debating, and having those sort of uncomfortable discussions, and really leading to great results. I find unless you can create that environment you’re not going to get the best real company. That’s my biggest lesson. That would be a whole other podcast to talk about how you create that environment, it’s not easy, but I’ve been doing a lot of reading about that and really trying to make a mark in a positive way on Autodesk.

Carlos: All right, so I have 3 last questions for you. This is what I think I didn’t prepare you for, but I think it’s going to be fun to answer. If you ran into yourself, right, and maybe you went to a time machine and you ran into yourself 20 years ago, what advice would you give yourself, based on the trajectory your life, or say, your career has taken?

Minette Norman: That’s a cool question. I would have told my 20 year younger self that you don’t know half as much as you think you do. Back then, I was so sure I knew what I was doing, and to really expand your horizons in terms of what you might be interested in, read more, do more research. That’s a lot of what I do now, a lot of reading, a lot of research. I think I’m always expanding my horizons, but I think if I had done that 20 years ago, who knows what I would be doing?

Carlos: Talking about reading, what’s a book you would recommend? These subjects we discussed today or any book you’d like to recommend?

Minette Norman: I recently in the last 6 months read a book that has been really powerful for me. That is, it’s called Radical Collaboration by James Tamm. It talks about what is really required for human beings to collaborate and the number one lesson from that is that you have to overcome your defensiveness. It’s a great read; I recommend that book. There’s another book that I found very useful and that I manage very global teams that are all over the world with lots of different cultures, and the book is called the Culture Map: Breaking Through the Invisible Boundaries of Global Business. It really helped me understand different cultures and how to engage with people from different cultures.

Carlos: Those sound fascinating, and I will check them out. Those, the links to those books will be on the show notes.

Minette Norman: Oh great.

Carlos: Now, the most important question, how can people find you and find your work? Also if you want to, if people are interested in working with you or at Autodesk, how can they apply and all that good stuff?

Minette Norman: Yes, you can find me on LinkedIn, Minette Norman on LinkedIn. I’m happy to connect. I also am on Twitter, although I don’t tweet very often. I occasionally do. It’s MinetteNorman, all one word, on Twitter. Then for Autodesk, if you’re interested in jobs here, we have an active career site. I believe the URL is Autodesk.com/careers. There are always lots of openings. I’d be happy to talk to people who want to learn more about what we do, what I do, et cetera.

Carlos: Just a quick last question, about people that are interested in working, give us a hint. If somebody who wants to get in, wants to work at Autodesk, what route is best for them to draw somebody’s attention instead of just sending in a cold email with a resume? How do they provide, how do they get hired?

Minette Norman: Yeah. You know, like any company I think the easiest way is through a personal connection, because then someone can vouch for you. I would say actively look on LinkedIn to see if you know someone at Autodesk, because I have found that people will sometimes reach out to me and say, can you refer me? Then all I can say is, I can but I can’t vouch for you. I can certainly send on your resume to a hiring manager, but I will have to disclose that I don’t know you. It certainly helps if you know anyone who actually works here. Otherwise, it’s fine to reach out to someone blindly and see if they’ll connect with you, but you know, just put together a great resume that’s maybe a bit unconventional, and if possible, try to find someone you know who knows someone at Autodesk who might be able to get you in.

Carlos: That’s great feedback. Thank you so much for telling the truth, not oh, just send an email here. Other people forget that it’s about people.

Minette Norman: It is, yeah.

Carlos: I’ve talked to a lot of engineers that try to apply and don’t get the contact. Minette just gave you guys a lot of good advice. Minette, I want to end this with thanking you. I think you’ve been, this has been an amazing interview. You’ve given us a lot of insight into your world, and I appreciate that because I know that again, there’s a lot of things you can’t talk about, so I appreciate you sharing a lot of that with us.

Minette Norman: It was a pleasure, thank you for asking me, Carlos.

Carlos: Thank you. I look forward to hopefully meeting you in the future.

November 1, 2016 / Comments Off on Prioritizing inside the Engineering Organization with Srinagesh Vitthanala from Financial Engines

Today we have Srinagesh Vitthanala on the show. Srinagesh, or Sri as he likes to be called, is a VP of Software Development at Financial Engines.

We talked today about a very interesting subject: Everything about how a software-engineering organization works. Not only how it works internally but how it supports the business.

Without further ado, let’s welcome Sri.

Show Transcript

Carlos: Thank you for tuning to Tech People, where real live technicianers share their professional experiences. Hello, everybody. Welcome to another episode. Today we have Srinagesh Vitthanala on the show. Srinagesh, or Sri as he likes to be called, is a VP of Software Development at Financial Engines. We talked today about a very interesting subject, at least to me it is very interesting: to go very in-depth into everything about how a software-engineering organization works. Not only how it works internally but how it supports the business.

I think some of these things that we’ll talk about today are some of the subjects that we don’t ask about. We don’t ask our bosses about. We don’t ask for more clarity, and truth be told we should. I think Sri brings a depth of knowledge and expertise that is going to be very interesting for our show today. I hope you really enjoy.

Without further ado, let’s welcome Sri. Hello, Sri. Thank you so much for coming on the show. How are you doing today?

Sri Vitthanala: I’m doing good, Carlos. How are you?

Carlos: I am doing great, very excited to have you. I’ve been expecting to do this recording, this interview, for a while now.

Carlos: Same here. All right, Sri, the first question I always ask my guests is tell me a littleabout yourself and your background. How did you end up in tech? How did you end up being a tech person?

Sri Vithanala: Sure. I did my bachelor’s and master’s in engineering. It’s kind of a logical thing for me to basically apply what I learned at college in the real job. That’s how it started. My first couple of jobs are industry automation, using software. Back in the early ’90s, I was doing client-server programming. Then I moved to the Internet with connecting browsers to mainframes, basically providing all the information to the browsers and making the information exchange between the clients and servers happen. That’s how the journey started. Here I am, basically handling all the work I do, day in and day out, with technology and software in particular.

Carlos: Right now you’re working at a company called Financial Engines. What is Financial Engines? What does Financial Engines do? I’m guessing, by the name, it’s with finances?

Sri Vithanala: Yes, that’s right. Carlos, this company was started by a Nobel Laureate. He was a Nobel Prize for his financial [inaudible 00:02:55] on how to invest, just [inaudible 00:02:58] return. He’s well-known, Professor William Sharp. He’s like the guru. He started with the noble mission of making his work available to average U.S. investors. That’s how this company started. Initially, it was basically giving advice online. About 14 years back, we started managing individuals’ money. The mission is to basically have investors have a safe and secure retirement and be managing investments for them, taking the responsibility and making sure the customers are getting the right help.

Carlos: How does software engineering play a part in furthering that mission? The reason I ask that is sometimes engineers … I’m sure a lot of people that are listening will be nodding after I finish this question. A lot of times we forget how our work impacts the organization and impacts our clients. How does software engineering impact the business’ mission?

Sri Vithanala: Sure. In our company, we always contemplate, are we a technology company, given that we are based in the Silicon Valley? Or given our mission of helping people in [inaudible 00:04:25], are we a financial-services company? Finally, we came to the conclusion that it is a technology-forward financial-services company.

Let me elaborate a little bit. For us to basically give the expedience and the advice and ability to manage investments and the skill, the only way we can do that is using technology. As we continue to scale our business, we need to apply technology; otherwise, we may actually increase our revenues but without technology our costs will go up. To have a good profit and to have a good balance between the profit and revenue, that is where technology will come into play. But of course, many of the latest technology innovations are reaching out to customers using various channels at the right time. Many of those things technology forwards the ability of the brand promising what we have. We take the company from where it was to the next level. At this point, we are the number-one registered investment advisor in the country. The reason was because of technology.

Carlos: Understood. I’m guessing now, as you can imagine I’m taking this macro-to-micro approach. We’re going to talk now about you, about your role. How does the VP of Software Development impact the mission? What is your role do to further this mission that the organization … You know what I mean.

Sri Vithanala: Sure. It all starts at the mission. We talked about the mission of giving advice and giving the safe and secure retirement to investors. From that mission, we need to figure out as as business, what is our strategy? How do we reach out to all these customers, letting them know that we’re here to help them out? And they need to trust us. Once they trust us, they need to basically take our help and services. That is where the mission would get to the strategy in which this company and our business can reach out to millions and millions of customers.

Once we have the strategy, how do we convert the strategy into execution? And convert that execution into various projects, through which technology would enable such connectivity between the company and the customers? That is where my role will come into play.

I work with the business partners and coming up with how that strategy needs to translate with the execution plan. We come up with the teams and sub-teams through which we can execute. It happens through annual planning, quarterly planning, and that planning would then guide the teams. The teams would take it from there and execute it.

Carlos: The big area to understand is how engineering impacts the business, how it impacts the overall mission. You are, imagine if we’re looking at this as a tree here, up there. I have a lot of exposure to larger companies because of my day-to-day work, but you’d be surprised the people who are working in engineering, the people that are down in the trenches, that are working on sprint-to-sprint, week-to-week, project-to-project, don’t see that large impact.

Let’s talk a little bit about macro, kind of the same theme how we started: talking a little bit about the engineering organizations, about the broad picture. One thing to use as, let’s say, an object within the organization are projects. Usually projects define the work that we’ve got to do. Your work, again in a macro type of setting, how often do you plan for projects that actually end up supporting the business?

Sri Vithanala: That’s an interesting question because it is kind of transforming the way we are exhibiting the projects these days. I would have answered this question in a different way four years back when we were in a waterfall product-development metrology. We used to plan projects every six to nine months. Now, with the transformation, we moved to agile metrology, where the focus is more on continuous improvements. Some projects would have longer durability and some projects basically stem from, there is an idea, let’s prototype it, put it in front of the customer, get the customer feedback. If the customer likes it, try to see if we can improve and scale it. If you don’t see that our hypothesis behind this idea doesn’t work, kill it quick and move the next one.

In that way, we are kind of in a hybrid mode. For some projects where we plan, OK we need to come up with a new platform, whether it is completely home-grown or we are integrating with a third party, those projects would be something we plan annually or biannual. The majority of projects, they basically are the ideas, regardless of where they come from. They come and we try to execute them, put it in front of customers, if that’s possible, then get the feedback and decide what to do next.

Carlos: How do you time-capsule those? Do those come in quarterly planning? Are they yearly? How far are those planned down the pipeline?

Sri Vithanala: Typically we plan annually. Given that we are a public company, we need to look for, OK given our current year revenue and we need to forecast next year’s revenue, what are the different levels we can actually operate on? Some are good drivers within our existing business, some are drivers which have something new we need to explore. That basically gives us a kind of overall theme for the year. That theme will actually help us come up with the quarterly planning.

For the quarterly planning, stakeholders from various departments would actually chime in. Basically, they would have [inaudible 00:11:19]. At the same time, product management would actually figure out, OK what is a product roadmap? And what do we need to basically work on to enhance our roadmap?

All that comes to quarterly-planning exercise. We basically use risk versus reward. What is the investment of such a project? And we come with a tentative plan for the quarter, and that is where the teams basically take such guidance and they take it from there.

Carlos: How micro, or how close, do you get to the delivery of projects? Again, when we’re thinking of how projects come down the pipeline and how projects come to existence, you’re definitely working at a portfolio level. How much control do you have further down the chain?

Sri Vithanala: I’m just giving a rough example. Let’s say across my teams we have, say, 10 projects we are executing for the upcoming quarter. We look at all these projects in terms of where there is more risk, there is innovation, and there is more impact. Of those 10 projects, we may basically take three projects or two projects which are kind of sensitive. Such sensitive projects I put on the top of my dashboard. For such projects, I go a little bit more deep in working with the teams. I try to see how I can help.

The rest of the projects, the seven to eight projects, I will be monitoring them, looking at various metrics like how many stories they completed, how many epics they completed, how far are they from getting the complete project completed and things like that. But I will not get into micro for such projects.

Carlos: Understood. One of the things that might help is, what are some of the project types that you guys build at Financial Engines? They might differ a lot from company to company. What would you describe the types of project as?

Sri Vithanala: If I can put the projects into, say, three different categories … One project is purely a product-driven requirement to implement customer experience. For example, a product may say that to help the customer come up with a new calculator and that, if such a calculator doesn’t exist, maybe we need to build it. It takes such requirements and we implement it. I would put such projects in one bucket.

The second set of projects are projects where we don’t need to build in-house; rather, there is some tool out there or product out there that we need to integrate our services and features with a product, and a need for our end customer. Those are the second type of projects where we don’t really build but we integrate.

The third set of projects are the projects which are purely technology-driven. For example, for the last 20 years, we have technology solutions which are all built in-house, posted on our servers. We are looking at moving such features onto Cloud to get elastic compute, to manage risk, get deployment flexibility and also tap into any of the Cloud-managed services. We have a long technology roadmap moving many of our in-house on-prem solutions onto Cloud. A project to move such a feature to Cloud would actually fall into the third bucket.

Carlos: Does something like technical debt fall into the third bucket also?

Sri Vithanala: Yeah, technical debt definitely would fall into the third bucket.

Carlos: Perfect, implementing a new framework maybe. The thing is, implementing a new framework, you’re building a project with that new framework as well.

Sri Vithanala: Exactly.

Carlos: Sri, one of the things we’ve talked about in our conversations in the past was this notion of platforms. How do you differentiate a platform from a web application or a product at Financial Engines? It could be nebulous because sometimes a web application … For example, at some companies it’s called an internal tool. It could also be called an internal product. In other companies, a product is only customer-facing. In some cases, it could be a marketing lining page or something. How do you differentiate the three at Financial Engines?

Sri Vithanala: That’s actually an interesting question because at a very high level you can’t even call a web experience as a platform. The way we conceptualize the word platform, we try to combine a set of features towards a business need and providing services so that the business need can actually happen.

Let me take it into a real example. If I look at our marketers, their job is to reach out to customers and let them know what our brand is about, what services we offer, try to earn interest and get customers to use our products. For that, our marketers need tools like a content-management system where they can edit and make it usable, many of the CMS-related features. We need to package all of these features at a CMS functionality. Similarly, they want to know which customers they can target. There needs to be targeting rule-engine-specific needs for marketers.

When we combine all the features required for a content-management system and customer-targeting engine … Combine all those and we call this a marketing platform. In a nutshell, a marketing platform would offer services for marketing needs. If we expand that to any other kind of business need — whether it is a call-center need where call-center representatives need a set of features, tools — we call that a specific platform. In that sense, depending on the business units, we basically combine the features required for such a business unit and start calling them as platforms. There is a similar analogy in the industry where we call a whatever we have a clearing platform, a data platform, analytics platform, marketing platform. Which basically jives with what we do at Financial Engines.

Carlos: How are initiatives brought down or brought up at Financial Engines? Is there a top-to-bottom or bottom-to-top approach? If there is a bottom-to-top, how do your juniors impact your organization and get you interested in a project that they might be interested in?

Sri Vithanala: That’s an excellent question because this is something I fear has been in doubt for our junior — I won’t even call it a junior, but for the teammates … For them to get engaged and excited about the work that they do, it should not be always top-down. That is why I said the strategy and execution plan would give guidance to the teams without giving exactly the requirements the way it needs to be. That work is going to be a combination of teams working with the product management, figuring out the requirements through the group sessions.

There are examples where teams know what is the team charter, what is the team mission, how a team’s mission and purpose align with the company and they have a set of metrics that they basically look at and they will be accountable for. When they are [inaudible 00:20:17] the purpose and the metrics, they may come up with the ideas, saying, “Hey, how about if we implement Idea X? I have a hunch that that would improve our metric.” In such cases, teams basically go and use their hackathons, [inaudible 00:20:37] strengths. They basically prototype and they share their experience with the rest of the people. If the idea has legs, we basically say, “OK, how about we invest a little bit more, put it in front of the customer and see what we learn?” Such times, if the idea is really a good idea, we basically see how we can scale this idea and realize the value from this idea.

In that sense, teams are important. It doesn’t matter where the idea is coming from. If the idea is good, if we can prototype and show the value, there is no such as thing as top-down, bottoms-up or sideways. It works. Whoever can come up with a great idea, we can go and implement it.

Carlos: I really like that approach, taking that natural type of approach to initiatives. In a financial company … You already talked about this a second ago. In a financial company, a publicly traded company, how do you really measure such an approach and measure the ROI of an approach? I know it could be, there is a lot of guesswork as to how much something is going to impact the top line or the bottom line. How important is the measure of an ROI at an earlier stage? How much into consideration do you have to take, and do you even need it? If you do, how do you measure it?

Sri Vithanala: That’s an interesting question. Even though I, at a very high level, mentioned that projects will be measured depending on the ROI, and sometimes the ROI may be indirectly that revenue or cost … There are other aspects of the ROI, which is basically the relationship, customer satisfaction and the pipeline for future good. For such things, we cannot just use the current dollars, how much this project is going to get. We need to look at what exactly is the object of this project. Sometimes if the project is about customer satisfaction, we can basically measure indirectly what the satisfaction translates to the business value.

There are some cases, which are very straightforward. We have a new trading system, and if it can help new account types, that will directly impact the revenue. But there are cases where it is not directly impacting but indirectly it’s satisfaction, retention kind of measures. They will indirectly help the business value. I hope that answers the question you had asked me for.

Carlos: It does because it tells us that ROI is not only directly linked to revenues; it’s linked to other areas of the business. That is important to know.

One of the areas that you discussed in the family of projects, you discussed type number three, which was kind of interesting, which technical debt kind of falls in. In sort of the same nature or conversation around that, there is so many front-end technologies. There are so many front-end technologies, back-end technologies, you can call it whatever. How open are you guys to innovation, or how important is being at the latest? The question comes a little charged in two ways.

One is, how do you balance out the innovation, going to the new thing, the latest thing … How do you balance that with, we’ve got all these other projects that are already working and they’re working fine. Why should we go to the latest? But also, how do you stay modern? How do you continue to engage engineers that you want them to work for you but you kind of have to have some newer technologies? How do you balance those two things?

Sri Vithanala: Yes, that’s the kind of interesting spectrum where we need to define ourselves. Are we the early adopters of new technologies, or we are the late adopters or we are the in-between? Given our industry, financial services, and that we’re a highly regulated environment and there is a high risk involved, we decided not to be the early adopters but rather in between early to late. If the technology matures, we’ll go and try it out and see how that’s going to help us. When we think about how it’s going to help us, we look at a couple of dimensions.

One is, is it going to help us in terms of going to the market faster? That is one dimension. The second dimension is, is it going to help us for risk management? Some new technologies will give us so much flexibility in terms of how we can deploy the features, how to enable the features; such a tool set is going to help us in terms of risk management. The third one, if there are features that we can deploy and we can get our customers to read about them, maybe that’s a third dimension that also can make us decide whether to move the next kind of technology.

Those kind of things we need to keep in mind. At the same time, we let our engineers explore technologies time to time and they come up with their recommendations and say, “Hey, XYZ technology is out there and it caught my attention enough for us to consider. I played with this and this is the prototype and these are the pros and cons with that technology.” Based on what we are hearing, what we learned, we will decide whether to go with that new technology.

Carlos: That’s a good way to balance things out, especially taking some of the engineers’ input in it. Is there a problem, a pain, that you see year after year? What’s your biggest issue? What’s the biggest problem company-wide, or a part of your role that you see that has a pattern that you haven’t fixed or you’re working on fixing? What would that be? What’s the one thing that keeps you up at night … maybe not keeps you up at night, but what’s the one thing that you work year after year to solve?

Sri Vithanala: Let me think about that. There are many problems where I was kind of thinking or over-thinking how to execute it. At this point, the biggest issue is the way our technology grew, we were able to manage at scale. Now as we’re adding new features into our tech stack, there is a risk of regression. That kind of led us to go to our Cloud services, move from on-premises solutions to Cloud. There is a lot of unknown on the Cloud side of things, when it comes to privacy, risk and some other compliance. As we are marching towards this journey, there are some unknowns. They basically come as blockers for us and we need to figure out, OK what is a way to come across and go about that particular problem and still deliver it?

That is something that is playing a big [inaudible 00:28:53] at this point. The other problem is, given the customers that experience so much information, so many emails, so many offerings, how can we reach out to the customers at the right time, have their needs the right way, talking to them with the right channel is a bigger problem. We have a lot of information on our customers but making use of such data and still reaching out to customers at the right time is a big problem for us.

Carlos: Interesting. That seems like two hard problems to solve because they don’t have a right answer. They’re answers that need to be measured and improved, and measured and improved. All right, so Sri, I have three last questions for you. These are a little bit more towards just questions for you specifically.

What advice would you give, let’s say, if you ran into yourself 20 years ago? What advice would you give your 20-year-younger, less-experienced self based on the experience you’ve had in your career?

Sri Vithanala: So I respect our less-experienced engineers, given the skills they are bringing to the business these days. It’s amazing. The one advice I would give to them is get clarity in terms of their deliverables. There is a notion of people measuring their success in terms of effort, in a crude way to say, “Oh, I wrote these 10 programs” or “I wrote 10,000 lines of code.” I would basically say change that notion into, How are you impacting the business value? What value do you give to the customer? Think from a customer’s point of view, what problems are you solving? And do you have data to back your claims that you implemented something? How are you measuring it? How are you helping the customer? If you’re in the shoes of the customer, are you happy with what you just delivered? Have the clarity and measure your outcomes. Do not focus so much on the effort.

Carlos: What’s the book you’d recommend … On some of the subjects we talked today, maybe somebody in your position or at another company … What are some books that you’ve read in the past couple of years that have helped you?

Sri Vithanala: I was reading a lot in terms of engagement, motivation. There are lots of YouTube videos about engagement and motivation subjects. The one book I loved truly is from Daniel Pink where he talks about what motivates all of us. He basically crystallizes, summarizes that into three terms, like “What is a purpose?” Then if you’re mastering some skill, you’ll be engaged. Purpose mastery. And you need to have autonomy. If it is somebody pushing onto you, at some point you will not be motivated, you will not engage. That is something I really embrace, making sure that I am dedicated in terms of purpose and my teams are dedicated on purpose. Making sure that they’re mastering the areas in which they work on. In case they don’t like … they want to explore some other areas, I want to support that. Making sure they are empowered and they have autonomy. The [inaudible 00:33:00] is making sure they are aligned. All this towards the business machine. If not, we can not really align those efforts and show value to the company.

This book actually talks about motivation, empowering, engaging. I think if we have highly motivated and engaged employees, regardless of the business line, that company is going to excel and show a huge value to the industry. I would recommend that book for anybody who is interested about the different side of things for development.

Carlos: All right, I’ll have that book on the show. Sri, this has been an amazing interview. I want to thank you again for coming on the show. I have one last question to ask you, and it’s probably the most important question. How can people find you, let’s say if they want to get in touch? Maybe if you guys are hiring, how can they apply? If you guys are trying to attract some new talent into the company, how can they find you and how can they find Financial Engines?

Sri Vithanala: Sure. I’m available on LinkedIn. People can actually search me on my first name, Srinagesh Vitthanala. They can send a LinkedIn request. In terms of applying for any positions, all our positions are available on our corporate website, www.FinancialEngines. If somebody is interested to apply for any position, they can send a link through LinkedIn, and I can include the right hiring managers and see what happens next.

Carlos: I think there’s something to be said, and I had this conversation recently with a VP of Engineering from Autodesk … She said that it’s all about personal connections, people that you know inside. Don’t just fill out an application, try to get in touch with somebody in the company. It’s probably better than a cold resume submission.

Sri Vithanala: Exactly. Yeah, yeah.

Carlos: Sri, I want to thank you, my friend, so much for coming on the show. I think you’ve got vast experience in your area and you’ve explained a lot of your world and how your organization, your engineering organization, supports the overall organization and the business. You’ve given us an overview of how the business is impacted by the work that the software engineers do. I think sometimes the engineering community feels, yes, they are doing cool work but sometimes we can be disconnected from the results that we’re providing the customers of the company but also the company itself. I think you’ve given us a great overview of that. Thank you so, so much.

Sri Vithanala: Thanks from my side, Carlos. It was really great talking to you. Some of the questions really helped me to re-think how we operate. I’m really happy to share my thoughts. Thank you for inviting me for this show.

Carlos: It was my pleasure, and it was my honor to have you as a guest. Thank you so much, Sri. Looking forward to connecting as well soon.

October 20, 2016 / Comments Off on Building component-based systems with Josh Crowther from Family Search

Today we have Josh Crowther on the show. Josh is a senior engineer who works at Family Search, which is a company that allows you to research your family history and overall genealogy.

Today we’re going to be chatting about the evolution of how web applications are built, and how he’s leveraging a component-based architecture over at Family Search.

Without further ado, let’s give Josh a warm welcome.

Show Transcript

Carlos: Hello, everybody. Today we have Josh Crowther on the show. Josh is a senior engineer who works at Family Search, which is a company that allows you to research your family history and overall genealogy. Today we’re going to be chatting about the evolution of how web applications are built, and how he’s leveraging a component-based architecture over at Family Search. Without further ado, let’s give Josh a warm welcome.
Josh, it’s a pleasure to have you on the show. How are you doing today?

Josh: I’m doing great. It’s a pleasure to be here with you.

Carlos: Josh, I gave a quick intro, of course, to Family Search, but what is Family Search? What do you guys do there?

Josh: Family Search, we’re the largest genealogy organization in the world. We’re a non-profit. All of our services are free, and our mission is just getting in and helping people discover who their ancestors are, who their heritage is, and so we all came from someplace and it’s that connection to family is what we’re trying to help people discover and learn more about.

Carlos: Got you, yeah, I wanted to get a bit more verbose intro to the company. It’s a very cool mission. I know it’s by the LDS Church, right?

Josh: Yeah, that’s correct. We’re one of the branches of the LDS Church. That’s true, correct.

Carlos: That’s very cool. Tell me a little bit more about your background, and how did you end up in tech?

Josh: For me, I’ve been in tech now for a long time. I actually started when I was about seven years old. My dad was working at Novell at the time, and I played a lot of games, so he wanted me to do something productive on the computer, so instead of having me play games, he got me SUSE Linux Enterprise Desktop 9. I don’t know if you know SLED 9 at all.

Carlos: Yep.

Josh: But yeah, so he got me SLED 9, and got me a book on the LAMP Stack, and just had me learn how to do web development back on the LAMP Stack, and I took to it then, and have been doing it ever since. I’ve just always done it. I don’t know.

Carlos: What is your role now at Family Search? What is it that you’re doing there today?

Josh: At Family Search, I’m tech lead, and so I’m currently on of the teams currently developing the tree product, so when you go onto Family Search, and you’re viewing your pedigree, that’s the product that I work on.

Carlos: Let’s start with some general questions. In today’s podcast, we’re going to discuss some factors that weigh in in picking front end frameworks, and not just the picking, but differentiating and bringing some of the differences amongst them. Let’s start with the basics. Can you explain how applications, web applications, use to be built, – for example, when you were referring to the LAMP Stack – and how are they built now? If you can, give us a little bit of detail as to the big change that’s happened in the web community.

Josh: Yes, so when I was a kid, on the whole LAMP Stack, I was building more just standard websites. I remember my first website that I built was helping a lady sell her peaches that she grew in her farm, but web apps have … I remember back in the day, they used to build them in Flash. There’s some that have been built in Silver Light and for a long time, those two were the main players until the revolution of HTML happened, and everybody jumped on HTML with AJAX and the ability to dynamically reload and change the page, and so as that’s happened and progressed, many different frameworks came out. You got your jQuery that started, and gave this notion of a component model. Angular came out, brought the MBC to the web. Well, there were others before that, but Angular was one big one, and then React became a thing, and got to this component notion of building big apps on of these small pieces, and then at least for us at Family Search, the next big revolution has been web components, is this notion that React and jQuery and Angular spear headed in these common, re-useable components that we want to use all throughout your app, that you want to be stylistically and functionally contained, but you only want to write the code once, and you want to distribute it everywhere, so web components has been the newest thing.

Carlos: What are some of the benefits? I’m not necessarily talking about the technical benefits, but let’s say an organization that has … A large engineering organization or a large engineering team with multiple projects that are running in parallel. What is the benefit of this type of architecture?

Josh: Shared code is the notion of truly shared components is the golden standard for large organizations because you, as an organization … At least at Family Search, we have a very consistent brand and a consistent set of functionality that exists across the site, and as you move from framework to framework, you end up re-implementing the same sets of code over and over again, because the functionality needs to stay up-to-date, and then as that functionality changes, you’ve got to keep your code up-to-date and so on and so forth, and so for us, web components has been a really big shift away from the frameworks because it is browser-native, and so we’re able to go and … It’s not fire and forget, per-say, but we’re able to go and write these shared components that anybody can use, because they’re browser-native technologies, but at the same time, because they’re browser-native, they’re going to work with teams using React. They’re going to work with teams using Angular and Ember and any framework, and so the re-useability is great, and we don’t have to continually be re-writing to catch up whatever’s hot at the time, so to speak.

Carlos: To make sure that everybody understands, the people that are not very familiar with some of these modern JavaScript principles, how do we put the web components and frameworks in the same sentence? They’re not competing, right? They’re more … Do you see what I’m trying to say? For people who have no idea about the difference or how they relate to one another, because they might be confused about, “Wait, wait, so it’s not that I’m going to use web components or am I going to use Angular?” Right? Some people might be confused about that.

Josh: Right.

Carlos: How do they differ? Are web components something you use on top of Angular or on top of React or Elm or Elixir, or are web components part of these frameworks?

Josh: You can build an all web components app or you can use web components in conjunction with any framework. All web components are is an extension of the native DOM API, so it’s teaching HTML with the div and the paragraph tag and the span and all that, teaching it a couple new tricks, and so all the modern browser frameworks, like you said, Angular, React, Elm, you name it, can all … They all interface with the DOM, and at the end of the day, the DOM is what the user ends up seeing and so you’ve got a interface with the DOM, and web components simply extend that vocabulary in a way that developers are already used to dealing with things in HTML.

Carlos: How were things done before at Family Search?

Josh: Family Search has gone through … We’ve stuck with the trend. We started on Flash, I know, and then we built a really big, rich client on flash, and then GWT came around, and we bought into GWT really hard, so we transferred a lot of stuff to GWT, and then as HTML gained some more traction and some more popularity, we went to jQuery, Bootstrap, and then most recently, we’ve gone to Angular and that’s we are currently at. As the hot technology changed, and as the quote-on-quote “right answer” changed, we’ve stuck with it, and tried to ship what made sense for the time.

Carlos: You’re primarily building with Angular today?

Josh: Yeah, that’s correct.

Carlos: What other areas of the stack can you share with us?

Josh: For the web stack, we are a mean stack. Well, partially mean, minus the MongoDB, so we’re running no JS on the server. Express is our routing layer, and then Angular on the front end, obviously, and then on the back end, we run Java for our API servers.

Carlos: What do you like or dislike about the current stack? Is there anything that you’re annoyed by, that you wish you could change and what do you really like about it?

Josh: I really like Node. The concept of full stack JavaScript to me is super, super appealing, because in developing these really rich client side experiences, you can end up sharing a lot of the business logic type code isomorphically with the server, and so you get a lot of benefits from being able to write one language that you can ship to multiple environments and have it just work, so that’s been really cool. I would actually like to see more of our APIs written in Node, but that’s just me. Our Java developers, though, do a fantastic job and they make my life much easier, so I guess I can’t really complain.

Carlos: You’re working with Angular. What do you think about Angular 2? Where are your thoughts?

Josh: Angular 2, the playing with it that I have done, I’m really excited for it. I went to ng-conf. It was really cool to see what they’re doing with relations to simplifying Angular, making it more performant, and then also they’re integrating some of the web component spec concepts, so they’re doing Shadow DOM template rendering, and these sort of things that make Angular 2 this really, really cool experience that is going to be both performant but powerful at the same time with zones and that type of thing as well.

Carlos: There’s been a lot of opinions, mostly positive, at least that I’ve heard about TypeScript. What do you think about TypeScript?

Josh: My experience with TypeScript has been that I absolutely am in love with the IntelliSense aspect of it. That is one thing that I am … The first time that I actually saw that in action, using that in tandem with the interfaces and being able to just go and I’m going along and have my code giving me much richer IntelliSense that it made my development easier was awesome. I look at CoffeeScript and what CoffeeScript did with JavaScript and how a lot of the CoffeeScript code just stagnated and is no longer maintained and you got to go to that one guy who knows CoffeeScript, and so I’m a little scared of super sets of languages, which is just from my experience, but overall, my experience has been fairly positives, but again, I’m still weary due to that nature of it being a super set of JavaScript and not the language itself.

Carlos: Do you think there’s a significant learning curve with some of new things that you’re seeing in Angular 2 versus the stuff that you’ve been doing up-to-date with Angular 1.

Josh: There is, yeah. If you’re just cranking it on Angular 1 and you’re just doing the day-to-day of shipping feature in Angular 1 and not really keeping an ear to the ground, then Angular 2 is going to come at you by surprise. It’s going to give you a lot of power in running your code in workers and in the ability to use like NGRX, and do this functional reactive programming style, and then seeing classes and ES6 imports in your code that might take some people by surprise, but I think that’s a natural change that’s going to occur anyways, and so though there is going to be a learning curve, I think it’s one that is part of the nature of being a web developer in the 21st century.

Carlos: Well, with so many new front end technologies coming out, there has to be a balance point, don’t you think?

Josh: Yeah.

Carlos: Even though I am 100% for innovation, I’m not against it, right? The more we innovate, the better. I don’t disagree with that statement one bit, but at the same time, I think that there will be a time where the things that we’re doing become more mature. What’s your opinion on this?

Josh: I agree 100%, actually. That’s, to me, what the web component spec actually is the start of. I feel like that’s really the first step in a much more mature web. The innovation that happens on a year-to-year basis in JavaScript is amazing. You get a lot of really cool new things, and the more things that get baked into the platform, the less these libraries and frameworks that sit on top of the platform have to do, and so over time, the innovation is going to continue to happen. We’re going to be able to continue to do cool, new things. I look at service worker and the things that we’re getting there, and the ability to completely control network traffic and that type of things, and it’s this amazing concept, and the more those types of powers that we bake into the web platform itself, I think the better off that we’re going to be, long-term.

Carlos: I know that you’re not picking the technology. Do you fear that people are picking technologies just because everybody else is doing it, because of the talent pool that they can tap into?

Josh: Oh, yeah. I think there’s a lot of that. It’s a hard thing to really pick a technology because it’s hot, but it’s just the world that we live in, a little bit. I just hope that the developers who are actually doing the worker are keeping an ear to the ground and learning all the technologies, because there’s a lot out there.

Carlos: There’s some other areas where you’re very known for. You’ve given a couple of talks recently, and I say recently, but it could be in the past year. What are some of those? Can you remind me a little bit?

Josh: Yeah, so I’ve presented this year at … Let’s see, what did I present at? I presented at the Gartner Catalyst Event in San Diego about month … Or no, a couple weeks ago, actually. I presented on Family Search and our architectural direction around web components, and then in addition, I’ve presented in – I can’t remember – Chicago, I believe. Yeah, Chicago, on Angular and then specifically Polymer interoperability as well as my pet feature of Angular 1, which is HTTP interceptors.

Carlos: Let’s say in the talk that you gave in San Diego, what was the thesis of your project? What was your talk?

Josh: I was talking specifically about how Family Search maintains a forward thinking culture, just because we are standardizing our own web components. Some may look at it as bleeding edge, and so it’s how do you keep an organization of the size of Family Search on the leading, bleeding edge of technology while still being able to ship product.

Carlos: That actually brings a question to mind. How large is Family Search? I never asked you this.

Josh: That’s a great question. I’m not sure how many engineers we have total. The division that I’m a part of is about 300 plus people. I’m not 100% sure. I think my discipline, the web developers that I work with, I think there’s somewhere around 100 of us, I want to say, so it’s not enormous, but it’s not small, by any means.

Carlos: Right, you do have to keep up with … There are certain complexities that are dealt with all the change that goes on, especially as you guys progress. For other engineering leaders in a similar situation. Maybe they’re considering a … Maybe it’s not a framework. Maybe the challenge is not the technology, but is the organization, as a whole, getting buy-in from above. What would you say? Let’s say you are charged with somewhat helping the organization move towards the new web, and this is probably something that is happening to a lot of people listening, that they want to implement React or Angular. They want to redo things. I know and you know that engineers what to work on newer stuff. We want to work with not necessarily just a newer toy, but we want to further our careers, so sometimes we take it upon ourselves to innovate at the workplace. How do we do this? How do we take it to leadership and prove it to them that this is a good approach?

Josh: I think, at least in my experience, a lot of it has been I’ve been able to work closely with other engineers, and develop things to show those people who are managing products, because ultimately at the end of the day, as engineers, we’re implementing features. We have a guy who owns the product, so to speak, and you’re following his direction as to where the product is and we, as engineers, have this really cool opportunity where we can either sit back and just implement features or we can actively take charge of our future and say the ability to do offline with service work or the ability to go and have components, whether they’d be React or web components or Angular 2, and show how that will positively impact the organization I think needs to be shown rather than just talked about. I think that at least in some degree.
I have a fellow coworker of mine who did a really good example of this where he went and re-implemented one of the pedigrees that we use at Family Search using D3 as opposed to how we were doing things originally, and so this D3 version of the tree that he implemented was far more performant. It was just an overall better user experience and he just took some time. The organization that we work for luckily gives us time, 10% of our time, to go and do personal development work, so he took that time to go and actually innovate, do that, and then he showed his work to people and people were like, “That’s really cool,” and now the project that we’re currently on, he’s actually implementing that very thing, so I think it just comes from going and finding the time somehow to go and get some individuals together to innovate, build something that is cool, because you got to have something to show and then going and showing it to the people that make the decisions and oftentimes, if they see that, “Oh, this is going to positively impact my users,” then we get to do the cool things on their time instead of ours.

Carlos: Josh, I want to thank you, man. This has been an amazing interview now, but I have three last questions for you. By the way, these last questions are now for you personally. We’re talking about the subject before, so now they’re towards you. What’s one challenge that keeps you up at night? Is there one thing that you think that you’d like fix as an engineer, overall, from that development point of view?

Josh: If I could fix one thing on the web …

Carlos: Maybe it’s not the web. Maybe it’s you. What’s one area of “I got to be better at this. This is one area of concern. This is an area I need to learn how to be better at” – I don’t know – “re-factoring”?

Josh: Right, I think for me, the biggest thing is knowledge of the platform and what’s there. I think we look at libraries, like underscore those types of things, because they give us this crazy utility that we often forget. A lot of that type of functionality is baked into the platform. Web components is a great example. Fetch, which is the new Ajax API available on the client, so knowledge of the APIs that are native in the DOM that I have access to anywhere. I can always do better at that. I feel like everybody can learn a library but you become really powerful once you learn the platform, and you’re able to go and deal with the lowest level of the language.

Carlos: What’s a book you’d recommend on some of these subjects?

Josh: I think Secrets of the JavaScript Ninja by I believe it’s John Resig, if that’s how you pronounce his name. That was a really, really good one for me. I believe he’s the author of jQuery, and he just dives right into the platform and how to interface with it, how to really do cool things with just the platform technologies, so that was a really, really great book for me. That and then there’s a book by Addy Osmani on JavaScript patterns. That is also a really solid one. I’d recommend both of those.

Carlos: Awesome, we’ll have those in the show notes. Now, the most important question,Josh: how can people find you and find your work if they have any questions or want to get in touch or if they’re curious about your work at Family Search?

Josh: Yeah, so I am jshcrowthe, so it’ll be in the show notes, hopefully, on GitHub and Twitter, and then you can always feel free to reach out to me there or for Family Search stuff, feel free to ping me on Twitter or you can always check out familysearch.org, and check out what we’ve got going on there.

Carlos: Well, thank you so much, Josh. This has been an amazing interview. You gave us an overview of the work that you’re doing at Family Search, and of course your expertise within the JavaScript realm, so very thankful for your participation.

End to end testing is a somewhat polarized subject in software engineering.

While, some argue against it with valid points, we still think they are an important tool to have under our belt. In this article, we will go over a few of the other testing ways, and dig deeper into the why, and how of end to end testing for Angular 2 applications. Continue Reading…

September 29, 2016 / Comments Off on Complete guide to webpack with Sean Larkin

Hello Tech People. Today we have Sean Larkin from Mutual of Omaha on the show.

Sean is a Senior Software Engineer by day, and part of the Webpack Core Team and Angular-CLI Team by night!

Let’s get the show started and welcome Sean.

Show Transcript

Carlos: Thank you for tuning to Tech People. We’re real-life tech practitioners who share their professional experiences. Hello, tech people. Today, we have Sean Larkin on the show. During the day, Sean is a senior software engineer over at Mutual of Omaha, but at night, Sean is part of the Webpack core team, and also part of the Angular-CLI team. Today’s show, though, is going to be all about Webpack. If you like this episode, please don’t forget to subscribe, and give me an honest review. If you have any questions or you have any feedback for me, you can email me directly at carlos@gistia.com. That’s carlos@ G-I-S-T-I-A.com. Without further ado, let’s welcome Sean.

Carlos: Thank you coming on the show. How are you doing today?

Sean: I’m doing good. Thank you. Glad to be on. Thank you for having me.

Carlos: It’s my pleasure. For those who don’t know you, tell me a little bit about yourself, and how did you end up in tech? I know you have quite a story. You started in tech, but you were not doing engineering; then you got into engineering. Tell me the gist of that. I remember when we talked about it.

Sean: It’s an interesting story indeed. Originally, I’m a music graduate. I graduated from a small school in Wisconsin, where I met my wife, who is from Nebraska. When I moved up here to Nebraska, I wanted to find a job that I could make some consistent money. There was a small startup that specialized in making medical management software for Mac computers. They had a job opening for tech support, and I started there. I did a really good job. It’s the only time I’ll ever brag about that kind of stuff. I did an excellent job at tech support. I really loved interacting with the people, but what was so frustrating at the end of the day is I couldn’t fix anybody’s problems. We were always there to either work around an issue or just triage. There was never really a solution. For me, you don’t really get that satisfaction of knowing that you’re making somebody’s life better. I wanted more, and so I started learning how to program. I think my first language I really dove into was AppleScript, to integrate some existing tech support tools. I learned Ruby, and then Objective-C. Things really started to make sense in seeing the patterns between languages. It really excited me. It was a little bit of an uphill battle at first, because tech support people don’t usually become software engineers, but I proved my worth. It was probably the best thing that that company has ever done for me, is hire me. Since then, I love being able to work as a UI/UX developer during the day, and then still be able to support some of these tools, like Webpack and Angular-CLI, which, they literally live and change the developer experience, or at least results.

Carlos: People don’t know, right, that there has been a lot of time between our pre-interview and this interview.

Sean: Yes.

Carlos: When we started talking a little bit ago, you mentioned that a lot has changed. Tell us some of the news.

Sean: Before we talked, I was just another web developer who … I was halfway through my 4th year in development; no, it had just been my 4th year of development, here in the dev world. I finally decided to submit a talk to a couple conferences, and I was lucky enough to be able to be asked to hold a workshop on Angular Webpack at ng-conf. Since then, it has just been a crazy, roller coaster ride of events and opportunities that have happened for me, starting with joining the Webpack core team, helping spread the awareness for Webpack and what it can do, as well as … I think initially I stirred up a little bit of controversy with the Angular-CLI team, because they were using broccoli and SystemJS as build tools. I really saw an opportunity, not only at ng-conf but when I submitted the issue at GitHub to say, “Guys, let’s use Webpack.” It has an incredible amount of support in the community. Even though it’s hard to configure at first, we don’t have to make the users configure it. Why don’t we do that ourselves, and give them an opinionated, great setup for how to use Angular 2, and never have to stress about the configuration?

Carlos: Let’s dive a little bit into that. I think we’ll touch in today’s podcast, since you’re part of both the Webpack core team and also part of the Angular-CLI team. Let’s get started with Webpack. For those that are familiar with Angular and some of the different tools in the framework, what is Webpack, and why does it exist? What is the big thing that it does for us?

Sean: I think the easiest way to describe it is to describe some of the challenges we had before Webpack. In a tradition JavaScript application, you might find yourself utilizing a lot of different scripts that you might just smash together, or maybe just throw 10 or 11, 12, script tags on your browser to load them; but then it comes with all these slew of issues, such as race conditions. You have a lot of overhead because you may have JavaScript that relies on duplicate resources. There’s also problems with being able to optimize your code. If you have too many scripts or external requests, it’s going to be really slow, because the browser can only do so many at one time. All these problems … Something that didn’t exist in node, and node has an environment that supports a single scope for modules that can be required. What Webpack does, is it solves all these problems by bringing a module-loading environment like node, into the browser run time. Other people like to say it’s a static asset bundler. It takes a lot of your JavaScript, but not just JavaScript, and bundles it into 1 or 2 larger bundles. This is really optimized for the current state of web. The way that the browser goes about downloading a file is that it’s kind of like a train. It’s slow to start, and slow to stop, but when it’s going, it’s actually incredibly fast. Webpack not only solves the problem of code encapsulation and organization, and by being able to have all these different kinds of modules, but it also allows you to do a whole bunch of things out of the box, like optimizations, code splitting, lazy loading. It can dynamically allow you to require CSS and JavaScript, so that you can have bundles created. You can require images from JavaScript, or maybe an html file, and Webpack will see that as a dependency. If it’s small enough, it will base64 that image. Otherwise, it will spit it out into the right public folder that maps directly to the file name. It uses a lot of these conventions to just make web so much easier for you when it comes to having a single solution.

Carlos: This might be a question that you won’t like, but what are the downsides of Webpack, or what are some of the reported downsides?

Sean: I actually love this question, because they are all areas of opportunity. I don’t know why I do it, but I spend an obnoxious amount of time on Twitter, just searching Webpack tweets. I can definitely say, summing it up, usability or initial learning is probably a huge struggle, which is number 1. Why, I think is because there is an infinitely number of ways to configure your Webpack code or configuration. I think two, our documentation is great for the person who understands how Webpack works, but for a first-time user coming from Grunt or Gulp, et cetera, understanding the core concepts, it’s really kind of hard. We hear a lot of complaints like the documentation is terrible, or spread out. Another one would be, I hear people say that it’s over-engineered, or too low-level. The thing that’s so incredible about Webpack is that it is completely unopinionated about your workflow, what frameworks you use, what your dev process is, and what your stack is. Having a set of reasonable defaults, or things that you have to do, will vary based upon your tooling. We strive to be able to be used for anybody, for any target, node, electron, atom, web, et cetera.

Carlos: What are some alternatives? What are some of the mainstream alternatives to Webpack? How does Webpack compare to them, in terms of, how does it do a better job than them?

Sean: The most common ones I hear are Browserify, which came before Webpack, a predecessor, and a lot of inspiration for the founder of Webpack, which is Tobias Koppers. He used a lot of that code, and built on it, when using Webpack. Browserify is great, because it is reminiscent of Gulp, in the way that you configure transforms for files. I think Webpack overall has better out-of-the-box features. That being said, there is also tools that target a smaller focus. For example, there’s RollupJS, which is … What it does is it bundles, but it actually in-lines and hoists the scope. It in-lines your ES-6 and hoist the scope, it kind of in lines your ES6 modules and then it removes, it does take further look into elimination at the statement level. What this means is that you’re going to have these really nice, nifty, tight, small super efficient bundles. Rollup is perfect for libraries, so if you’re running a library, right now in the current state of where Webpack is, I’d say use Rollup. Webpack users, if you’re raking in applications, use Webpack because not only are you going to get an awesome node module that Webpack can pull in, but it’s super efficient. Then, I’d say system JS, but that’s really more a module loader. I think that’s one of those misconceptions out there right there where system JS is a dynamic module loader that works in the browser’s run time, where as Webpack emulates that system but statically by creating these encapsulated bundles.

Carlos: Are there any similarities or any places of, yeah maybe similarities is the word, between Webpack and Rails Asset Management, or sorry, Rails Asset Pipeline? I know you have some Rails background, does that ring a bell for you?

Sean: Yes, well I definitely have experiences with Asset Pipeline with Rails. I can’t say that it’s always, it has always been positive. For example, there are some overlaps, for example, things like SaaS, which I think Ruby Saas or Lib Saas which was a common free processor with Ruby and Rails. That’s something that Webpack can do out of the box also, or by adding a loader configuration. They try to accomplish the same things, but I don’t know that Rails Asset Pipeline can do things like de-duplicate modules or it can perform lazy loaded code splitting, or let’s say allow you to put expressions inside of your required statements so you can have dynamically created chunks or bundles of your code separated, or let’s say long-term cash management. I know it can cash bust, but it’s one thing to do that versus doing cash management plus all those other things on top because they come with such a huge amount of complexity.

Carlos: Now, I’m going to jump into some more specific questions that actually some members of my team thought they would be interested to ask you, part of our engineering team. Do you think it will be possible to write a tool that will use Webpack under the hood while exposing a smaller surface to the user? Something like a set of smart defaults for different frameworks.

Sean: I’ve heard maybe in the past two weeks or the past month a lot of people buzzing about this a little bit. Yeah, I totally think it’s possible and you could even use Webpack to build that UI or app, which would even be cooler. I think that the thing is, is that, and this is just my opinion, you can go two ways with it. One, you can make every single feature possible through an app like this, which to me, that might be really cool, especially to a power user. To be able to go through an intuitive UI and have that infinite configurability still, but then with a little more ease of access and use. Or, I think the other way to approach it is you could have, like you said, a reasonable set of presets which maybe represent best practices from every community. I think you could use that to have a configuration under the hood, maybe running a known API or continuously modifying a file. It could be like a tool, gosh I can’t remember what it was called, but it used to do the same thing for your, it would pre-process, etc. Code Kit, I think it was. You could have something like that, which could also be a great learning experience with tool tips and tour guides and all these features that kind of explain what these properties mean to educate the person and why they might need it. It’s totally possible, it’s just a matter of who wants to take the time to do it and the complexity involved.

Carlos: Last time we worked with Webpack internally, it took us a lot of time to debug why a given file was not being recognized by one of the loaders. I’m not sure what version it was, it was probably a while ago, first is do you have any tips to debug those kinds of situations and two, how has it changed in the latest versions and how is that sort of issue being handled by you guys?

Sean: Well, there’s two things. One, I actually just wrote a very small one minute, two minute read, on our Webpack media publications, so you can go to www.medium.com/webpack and I think our latest post, we haven’t posted in a while because we’ve been busy working on updating our documentation, but it talks about how to use Node Nightly and you can even use Node 6 now, to use chrome dev tools to debug node processes. If you ever use the MPM module node inspector, it kind of did the same thing but the chrome dev tools team was awesome enough to submit a PR that uses the native V8 inspector and have it running nodes so you can access all those killer chrome dev tools features and debug your Webpack processes. They can take a look at that article, it’s a pretty quick and easy read. I even used it to write custom letters or plugins, like I’m working on a new version of a loader right now and it’s been vital for me to understand some of the more complex workings of Webpack.

Carlos: This is another question that was brought up to me. When you first start on a project and decide to use Webpack, do you write the configuration file from scratch or do you have a collection of sane defaults, or let’s say, and this is probably a question for you, if you use someething that already exists, where are they? Are they publicly available?

Sean: I’ve used a lot of boiler plates to learn techniques and understand how Webpack works and that was a lot of what I did in the beginning. I think once you understand Webpack, and I break it up into four core concepts, you got entry, output, loaders, and plugins. If you understand how those work in the Webpack ecosystem, I more than likely, at least this is how I feel, I feel more confident wanting to build my config from the ground up versus trying to copy something over. There’s nothing wrong with it, and that’s how I wrote a couple boiler plates myself for Angular 1 and Webpack, or Angular 2 and Webpack that’s really minimal. I kind of used a bunch of techniques. Great people to follow or look into, so you have for React users, there’s React boiler plates, there’s I think Fuj AS starter, I know of Patrick Stapleton, his Angular class has a whole bunch of Webpack configurations with Angular that have a lot of great techniques and also proof concepts for how to build custom plugins and loaders, etc. I’m always on, maybe it’s just the bias speaking, but I always say start from the ground up with knowing the knowledge that you have because it’s so much easier to not have to worry about side effects or maybe having other features that you didn’t really need or a conflated node modules, that always happens.

Carlos: Before we jump onto the Angular CLI, I don’t have many questions there, but I wanted to make sure we touch on a few of those. Before we get onto those, now that you’re working so much with the core team here, what’s in store for Webpack? What’s in the future, what can you tell us about the road map in the next 12 months?

Sean: Wow, 12 months from now.

Carlos: Well, 6 months if you want.

Sean: Well, sure. I like to describe myself as a crazy, insane, idealist. Even if these things aren’t actually in foundations for the future, they’re things that I hopefully am going to push for myself. Things I can tell you for sure, our number one priority right now until we’re trying until the end of August, we haven’t had much community support and so we might push back, but is our new documentation site. After talking about the core features about what is the most critical piece for releasing Webpack out of beta. Right now, besides small bug fixes, Webpack 2 is stable, it’s usable, but we’re holding off until we can give people, or at least first-time users, a set of great documentation that they can rely on and use to understand and help guide them. Documentation has been our number one block since the Webpack 2. Once that is done, we’ll release, it’ll be out of beta, and we’ll start immediately on some optimization features. Rich Harris, who is the writer of Rollup, I’ve been in talks with him to maybe not in the immediate future, but to help us start implementing some of those core Rollup features that allow modules to be super small. That’s one thing that Webpack in terms of targeting as a library or even just for your application code could work on, and according to another core member, Tobias, who created the whole project.

Sean: He says it’s easy enough to do, but it makes core changes, and so he wanted to hold off until we released 2, and we can go back into some active development, so that’s the first thing that I imagine is of the highest priority. Then I’d say the second is going to be maybe looking into some sort of façade for usability, like you said, for people to adapt to easier. Then there’s all sorts of crazy things like I would love to see, me personally, Webpack have awesome built-in features out of the box that makes using it in dev tools, and for across all browsers super awesome. Paul Irish and Addie and Kenneth from all these browser teams have been so kind to keep the dialog open to say, “Hey. Where are these open opportunities that Webpack maybe you could get diagnostic information?” You could have a UI that lives there, custom tools extensions, and things like that. I guess even to take it further, HTTP/2 support is also another one. Some of the leading heads in HTTP/2 and web performance, I’ve had the humbling opportunity to be able to work with them and get ideas and say, “Hey, so where do you think Webpack can fit into this? How can we make this story that much better because the user’s using Webpack?” We’ve already released a aggressive splitting plug-in which will split your chunks into smaller ones, but in a very specific order that works with HTTP2 Push, and is super optimized for that process, because we’ll never get out of the world of bundling, but, at the same time, HTTP2 let’s us have many more smaller bundles.

Carlos: Man, this sounds exciting and very busy in the next couple of months.

Sean: So true.

Carlos: About the Angular CLI, for those who don’t know, you know, they’ve heard about Angular, and again this is more geared towards people who’ve not worked with Angular, so what is the Angular CLI and how does it help us?

Sean: The Angular CLI was inspired by the Ember CLI, in fact, and actually so much that it is an add-on built on the Ember CLI package. Mind you, we’ve gutted out a lot of that Ember functionality that’s being overwritten, but the Angular 2 CLIs, I can’t maybe read it verbatim, but my opinion is that it serves the purpose of anybody who wants to have a production ready website in a matter of minutes at their fingertips with a few commands. It has some of the awesome features that made Rails popular like generators and Command Line Tools that let you build an app, add a component, and meanwhile, doing that with an opinionated faction that conforms to our style guide, and also is using awesome optimization features like Webpack and Behind the Scenes.

Carlos: I was about to say that there’s a lot of comparisons there with what made Rails Rails. What changes do you see in the Angular CLI with Angular 2.0 just right around the corner hopefully? We’ve all been waiting, by the way, for it.

Sean: Well, some of the biggest challenges that we’re trying to tackle right now is some of the challenges that makes Webpack confusing. I mean, I think it’s eye opening for them, because we’re trying to take this super awesome configurable tool, but use it in a way so that it’s black-boxed, and that the user never has to concern themselves, because not everybody wants or has the passion to spend time trying to make their app as tiny, and efficient, and awesome as possible. We’re trying to do that for them, but still allow them to use whatever scripts they want, and global styles. The Webpack, I guess we don’t call it the branch, but the tag right now, it’s in master, but we haven’t released a latest, or a default release, because we want to still work on having support for global resources. Being able to do that. Another feature that’s really huge is the Ahead of Time Compiler for Angular 2. It compiles all of your code to be super optimized and takes, basically, that interpretation step out of the browser run time, and does it in a build step so that your code is extremely fast. Integrating that with Webpack is also going to be really, not only a great feature for the community who doesn’t want to use the CLI, but also for people who use it because it’s going to be a great user experience.

Carlos: What’s, and I know you’ve mentioned this, but isn’t it confusing that the Angular CLI interface is based on a competitor framework? It’s kind of a thing. What’s your take on that?

Sean: From what I’ve heard, and I haven’t been on the court too long, or on the Angular CLI team long, but really we don’t even see them as competitors. More as just we’re thankful for anything for making something that we’ve been able to build off of, and create an entire ecosystem for Angular CLI users. I would say that there’s some things that we’d like to change for the future, so maybe removing some features that add some fluff from the MPM install, but really, we love the work that the Ember CLI team basically did for us in helping us understand how we could build an entire separate CLI system just right from their tool.

Carlos: For anybody listening this is not a competition, right?

Sean: Oh yeah, absolutely.

Carlos: This is not a competition mainly because we are all trying to evolve software. Otherwise, we would never move forward with new trends, and better ways of doing things, because then there’s people who have their own agenda. If we all had our own agenda, and had our ways, then we would stick to the old ways of doing things. This is open source. That’s kind of the goal that framework, I mean Angular is going to be a thing until all of the sudden it evolves into something else, and it’ll be called something else, but it will be a lot of lessons learned in the same way that we learned a lot from Rails, or in the same way that it split and became React, and they’re doing more stuff with functional programming that again it’s just 2 branches, but it is an evolution.

Sean: It’s almost a Renaissance. I call it the JavaScript Renaissance. To those out there, I’ve tweeted this before, but to anybody who says JS fatigue or tooling fatigue, I don’t think so whatsoever. I think the fact that we get these new, amazing, incredible toolings that show up every other week, or every month, or you look and there’s something new all the time. We are in this brilliant era of people creating awesome things not only for the user, but for web performance. That just progresses everybody further at the same time. It gives me chills just sitting here thinking about it, because it’s so exciting. Maybe I’m in a great spot on the Webpack Core team, because we feel like the center of it sometimes because we get to bring all of these people together and help us collaborate, and build all these awesome features for prospective frameworks, but then build off those ideas, and make our own product better too.

Carlos: All right, Sean. Now, I think I have 3 last questions for you that are more for you, basically.

Sean: Sure.

Carlos: What would you say is your most pressing responsibility? You’re now juggling 3 things. We didn’t talk much about it, but it’s important in your life, Mutual of Omaha. Your work there and now doing all this other work, and I’m sure they support it, because it’s a good thing for them also, but how do you balance that out? Does any of that keep you up at night?

Sean: Oh, sometimes it does. I kind of got into a good rhythm, so like Wednesdays and Mondays are pretty heavy in terms of Webpack support. Especially I might take a couple of hours before work, and I’ll be communicating with the core team. Mind you, they’re all in Europe, and so that’s their mid-day, so that’s a good time to reach out. I’ve found that when it comes to the Angular CLI and Webpack’s that you have this awesome flexibility to delegate work to people, especially, who are smarter than you are, and I refer to myself, because I’m not the most brilliant engineer in the world, but I love being able to see that spark in somebody’s eyes light up when they understand how to do it, and they go and take it and make something killer. One is being the inspiration helps off-load some of that responsibility, and gets other people involved, and that’s great. I think staying organized is really key. Only budgeting a certain amount of time for certain things really helps you focus on not wasting too much time in one aspect or the other. In the end, my number 1 pressing matter is probably, at the end of the day, my family. I have a 5-month old and a wife. That’s also been another on the things to juggle, and in the end that’s probably the most important, and then it comes work, and then open source work.

Carlos: What advice would you give your younger, less experienced self?

Sean: What advice would I give myself? Jeez. I feel like if somebody who knew me would just scoff, because I’ve only been doing this for about 4 years, but what I would say is that never stop being involved in the community, because talking, helping others, mentorship, collaboration, putting yourself out there, even if you don’t understand the concepts. Sure, let’s say you look stupid. It shows your willingness and caring to want to be involved in something. I’d probably say get involved sooner. I wish I would have known that I could submit talks and conferences years ago, because I think that’s the coolest thing ever, and you get a free trip to a conference. Experiment. Don’t be afraid to just put yourself out there, because who knows what kind of amazing opportunities that you could have.Carlos: What’s a book you’d recommend on some of these subjects we discussed today?

Sean: Oh man. Okay, so we don’t have a book on the CLI, but there is a great piece of literature for Webpack, and it’s by one of our core team members, Juho Vepsäläinen, and it’s called “SurviveJS.” I think it’s from beginner to master. I might misquoting it, but you can search “SurviveJS” on Twitter. It’s a free book, but if you purchase it, I think a large percentage of the contribution actually goes towards the Webpack project. We have a small amount of people who support us just through small contributions and things like that from time to time, but this is one of those great things where you’re getting the knowledge out of it, and you’re benefiting this project just directly right away.

Carlos: That’s a good one. I’ll make sure that that gets on the show notes, and that’s a good idea as a way to support the community. I like that. I didn’t know that that’s how that worked. That’s pretty cool. One more, and this is the most important question, how can people find you, and find your work?

Sean: The number 1 way to find me these days is just by putting #Webpack in your tweets, because I’ll find you. No, but you can find me on Twitter at @thelarkinn, so that’s T-H-E-L-A-R-K-I-N-N. You can also find me on LinkedIn, Sean Larkin, or Stack Overflow is the Larkinn. You can check us out on our Webpack medium publication. You’ll find some of my other writings there as well. As well as I think my GetHub, so GetHub.com\thelarkinn. You can see all the stuff that I’ve been involved with, and you’ll see a lot of Webpack stuff, and I will guaranteed respond to you if you do #Webpack on Twitter.

Carlos: Well, my friend, I want to thank you, man. This has been an amazing interview. You spread knowledge here like crazy. I think this is going to be something that anybody who, even if it’s an introductory class, but this is a very complete, introductory class to Webpack, and also even Angular CLI. I want to thank you so much for taking the time. I know it took us a while to get it on the books, but I appreciate it big time, and I really hope to see you soon in a conference.

Sean: Yeah. Aren’t you glad that we waited, because now I’m doing all this stuff. We had a lot of great things to talk about.

Carlos: Yeah. Super excited for you, man. You’re great.

Sean: Yeah, and thank you for having me.

Carlos: No. It’s my pleasure. All right, Sean. Once again, my friend, thank you so much, and I’ll see you later.

The Javascript world has changed drastically over the past few months. We have seen new changes rolling out “every month, quite literally (Sept 2016). This raises a lot of questions, including; Should we upgrade to Angular 2? Is upgrading to Angular 2 worth it? Continue Reading…

September 20, 2016 / Comments Off on Modernizing Systems with Angular in the Enterprise with Gary Trinklein

Today we have Gary Trinklein on the show.

Gary is a product development architect at BMC Software, specifically within the BMC Z Solutions team. He’s here to share with us some of the context about what it is to work with AngularJS helping modernize legacy systems and also the unique set of challenges and wins he’s had through the process.

Show Notes

Interview

Carlos: Thank you for tuning to Tech People, where real life tech practitioners share their professional experiences.

Hello, and welcome to another episode of Tech People. Today we have Gary Trinklein on the show. Gary is a product development architect at BMC Software, specifically within the BMC Z Solutions team. He’s here to share with us some of the contexts about what it is to work with AngularJS helping modernize legacy systems and also the unique set of challenges and wins he’s had through the process. Without further ado, let’s welcome Gary.

Gary thanks for coming on the show, how are you doing today?

Gary: I’m great.

Carlos: I want to thank you so much for taking the time and coming on the show and sharing with us some of the experiences you’ve had with angular over at BMC.

Gary: I’m looking forward to it.

Carlos: All right. For those who don’t know you, tell me a little bit about yourself and how did you end up in tech?

Gary: That’s a very interesting question. I was in college, and I was pursuing some different majors. I never had anything that really stuck and I had an advisor that said, “You ought to take a computer class because it would be helpful,” and I did. It was an eye-opening experience to me and from then on I went and took more and more classes and changed my major to computer science, and it’s actually been a delight ever since.

Carlos: In our pre-interview, you discussed a little bit about your very long history in the tech world. But today you’re working at BMC Software. But for those who are not familiar, what is BMC, specifically what is the BMC Z Solutions, Team?

Gary: We sell a number of products to enhance and optimize and reduce the cost of running the IBMZ platform, often known as the mainframe. It’s a classic, it’s been around for a while, it’s still the powerhouse for a lot of fortune one thousand companies and even global one thousand companies around the world. It may not be as fashionable as, say, some of the new computer platforms, but it’s the workhorse of the industry, and it offers unparalleled economies of scale and large transaction processing for our customers.

Carlos: What would you describe as you primary role and your main responsibility within the BMC team?

Gary: I have a number of different roles but it comes around the title of architect and I’m working as a technology enabler. I’ve been working in infrastructure and providing new tools and new platforms for us to extend the capabilities of our products or make them available in new areas. I’ve brought in application servers; graphical user interfaces for the desktop. Nowadays with the angular web type applications, I’ve done some work in the past with expert systems as well.

Basically coming up with tools and concepts to help us develop our products faster and make them more relevant to our customers.

Carlos: Part of what’s interesting is given your long career and again, coming from working with mainframe computers … Seeing the difference, what do you say is one of the biggest highlights for you in terms of being able to work with some of the newer generation technologies, such as Angular JS?

Gary: We’re able to solve problems and do things that were just inconceivable before. There’re so many more opportunities, so many different places you can do things. But I think significantly, the user experience, what you can do and how well a computer application can meet a person’s needs is just incredible.

When I started out in this industry thirty-five, thirty-six years ago, CPU time was a very precious resource. You waited for it, and it was accepted that it was going to be difficult for you to use the computer because you didn’t count, the computer counted. Now thirty-five years later, Moore’s Law, all of those different factors have just totally upended it. Everyone has a very high expectation of what their experience should be, and it’s growing all the time. Throw in mobility, all these other things, it’s just incredible the opportunities that are abounding.

Carlos: If you could … That’s probably talking from the technology side of you but there’s a huge difference or a huge progression also in the ways that we work. Especially around UI development and visual design. Building user interface design or human-computer interaction design, how big of a deal has this been in terms of your own career?

Gary: It’s been a big deal. You have the concept of user experience, user design interfaces, and stuff. Thirty years ago that didn’t exist. It started to surface maybe twenty years ago, and now it’s a discipline all unto itself. I can remember days when you just basically had a graph paper grid that you laid out screen designs, and it was all character mode and you had to print things out. Nowadays you have a workflow analysis, you have personas, different things like that that have just made it so much more sophisticated.

Once certainly has to be willing to embrace learning new technologies and new techniques all the time to keep up. But by the same token, it’s gratifying to see the end product that can be produced.

Carlos: So now let’s shift gears in terms of what you guys are doing today. Why was there a need to find a tool, to find a technology such as angular, why did you need to do that? What was the underlying need from a business perspective if we can talk about that? Just to understand some of the motivations behind why would you guys think, “Okay, we need to modernize this legacy system and bring it to market with something like Angular,” or maybe you touched on something such as react? What was the motivation behind that?

Gary: First of all, I want to make it easier for our customers, and we wanted to be able to reach out to more platforms. As we hooked up more user interfaces and things, we went through sort of a progression. We had a history as we went through our first round of modernization of having Java desktop applications or Microsoft desktop application which were big and robust and very, very capable, but as a consequence they had to be installed, they required certain privileges and for some of our customers, they had their PCs locked down by the systems department, they weren’t allowed to install things … Mid you, we have a lot of customers that are big financial institutions with huge security concerns. Even the act of installing things was problematic.

We wanted to approach more of the thin client type approach. We had played around with HTML in the past and done some prototype applications. But they weren’t quite robust enough. There were some other solutions that came along but with the advent of HTML5 and they ascendancy of JavaScript, we saw some new opportunities. Hand in hand with that, though, we realized that the PC desktop is not the only way to reach our customers, and they’ve got other desires too. One of the reasons this is appealing for us is it will open the doors for us to extend our user interfaces and functionality to other platforms besides just the desktop.

Carlos: Was there ever a consideration of extending or redoing the existing systems without measuring the comparison between redoing this from scratch in a different way versus just being to expose the necessary APIs and build a brand new front end? Was that consideration made and that’s why you went into this route?

Gary: Yeah, we really didn’t have a choice. Mind you we have islands of different hardware platforms too. We had a stable base on one platform that was very mature, very capable but we didn’t want to rock the boat and it had a lot of low-level functionality. I think I mentioned this to you before; we looked at the concept of the middle ware layer to bring things in and to basically work as a transport and not quite but facility are to feed data to the user interfaces.

Carlos: Actually, I was about to get into that. Can you speak a bit about the middle ware you had to develop to bridge the gap between the legacy software and some of the modern interfaces? How did you come up with that idea? Tell us a little bit in depth in terms of … From a technical perspective, I think the biggest value of this conversation is for other people who might be in a similar situation to say, “Oh, I hadn’t thought of that.” What can you say to those things?

Gary: You know, this is kind of a flip answer, but I joke that part of my job is being a plumber and being able to lay pipes of data and make things available for people. We’ve had two instances where middle ware really paid off … Or the investment in middle ware has really paid off for our company. We had one example, this was the first case that we went through where we had existing products that were robust, they were functional, they were well, but there were two problems. They were independent silos; they didn’t work together very well. In fact they were developed at a time where they didn’t have to play together well, and they also lacked any kind of modern communication capabilities.

It was assumed then that all the user interfaces would be on a single platform. You would use the native binary APIs to communicate with those products. Well times change, and we had other needs and so what we did was we developed an application server that ran on ZOS, on the Z platform and it taught TCPIP, HTTP and a flavor of XMO, our PC to our Java desktop applications. Then using the Apache loadable module from the Apache web server as a model if you will, we developed what we call product code handlers that would basically host functionality in this application server but at their backend, they would invoke the binary APIs to the existing products that we already had.

The existing products, very complicated but very stable didn’t have to change. We were able to do the conversion work bringing it from the data and marshaling it from a native binary API into XML and back and forth inside this middle ware layer that was not as a sensitive environment to run in, and we weren’t disrupting the existing products code. Then we would have families of these handlers for the different products and they would the present a unified network API, if you will, to this Java desktop. This Java desktop application was able to talk to a number of different products not really caring about how that product back there on the IBM mainframe was actually installed or what the details were but the user was able to invoke the functionality, see the data, make things happen from product to product without having to do as much shifting gears and changing user interfaces, et cetera.

Carlos: If you could pin point, which previous technology or which previous experience do you think led you to this solution, specifically around the technology like picking that as a technology to do this?

Gary: Well, in previous jobs or roles both at BMC and before BMC, I had developed some web applications. Some of those were CGI, some of those were more NSAPI with the Netscape API when we had a Netscape web server. That opened up the possibility to me because we were doing web applications from the browser and we were talking HTTP and getting the data, and that was nice, and we were doing stuff in the background to get some data but I thought, “You know, why can’t we take this concept and extend a little bit more?” Instead of presenting with HTML, which mind you eighteen years ago was kind of cumbersome thing to do. It could be done but it wasn’t easy.

Instead of doing that, let’s jst use the same HTTP protocol and send XML request up to the server and get responses back and then do whatever kind of presentation we wanted in the Java or in some cases Microsoft desktop environment. Then take the idea of the CGI server or better yet the NSAPI where we can actually have application type code running on this application server and let’s extend it to go ahead and talk to our existing products with the native API. It was really kind of based on experiences I’d had in previous roles.

Carlos: Now let’s talk a little bit about your development cycle looks like. As you guys have adopted Angular JS, how … I guess what I’m trying to ask is how has it changed … I don’t know if it’s changed a lot but has it made a big difference in your own engineering?

Gary: Yes, and it would be really easy to say, “Okay, well mainframes are really slow, and PCs are really fast, and that’s why we can do it.” But the real answer is a little bit more nuanced that. I think that the closer you are to infrastructure and operating systems and soft operating systems, internals, you have to step very, very carefully, and you have to have lots of testing and lots of regression. As you step further and further away, and you’re not in that area, you’ve got some more opportunities. If you have a layered approach where you might have let’s say a base here where you have very mission critical type software, it’s very dangerous to change it because we don’t want to do anything.

Remember our product code can sometimes run at very low levels and do all kind of wonderful things with the operating system for our customers. You’ve got to be very, very careful in that environment, so that called for a very measure, very studied … A lot of QA intensive work. Then you step away from that to say a middle ware layer and at that point you’re starting to move the data around. You’ve got to make sure you’re doing the data and doing that right. But you’re not going to break anything back there unless you send the wrong command or something like that. That brings you one degree.

Then you go another level, and you’ve got a user interface, and you’re not going to be able to break anything no matter what you do really badly in the user interface. That lends itself towards more rapid cycles. We can play things. We can do things very quickly and turn them around and see what it play like. The different platforms, the different things, they do give us different opportunities. But it’s much more than just what platforms you’re on; it’s also what kind of software and what’s it’s doing in the backend.

Carlos: Have you … This is a question coming from an unknown perspective. In the way that we are working with current systems, we usually have again maybe staging server and production environments; they can quit separately. How do you do that? How do you replicate production environment in a mainframe production environment in a staging environment? I’m just curious about how you guys do that.

Gary: We actually end up have like four or five different environments if you will. You’ll have like a developer sandbox are where they’re doing things, and then you’ll have a team environment where you’ll have … You’ll bring the different code together for the different teams, and they will work for the release of a product and once the product reaches the code completion and it’s turned over … There’ll be a QA effort and then from there we go to yet another system we call our “interop,” and that’s where we have a production environment and we have a ll of our products and mind you we have I think about a hundred and fifty some mainframe products in the Z Solutions unit where they were all coexisting.

This is where we exercise them to find out if not only is each product doing what it’s supposed to but are they being well behaved with the other products and how is that all getting along. Then we have that. Then we have yet another level of testing, and this is a little bit harder for us because we have customers with huge transaction loads like three hundred thousand transactions a minute, things like that. We will actually sometimes use our customer’s data or use our customer’s facilities to be able to drive these huge loads.

Carlos: Going specifically into Angular 2.0. Why Angular 2.0 and not some of the other options?

Gary: We thought, since in this space we were staring off with a new project, and we were looking towards the future, we thought Angular 2 offered the most for us. We did a pilot with Angular 1 I think 1.4, 1.5 or something like that. We liked the way it worked. We had some reservations about its ability to scale for a very large complex application, and we saw in Angular 2 some advantages or some things that would open up for us to have that kind of an application.

Carlos: Given that some of the projects that you’re working as you said are very … They’re in production and there’s a certain degree of importance, and also you can’t be touching or messing with things that are working fine. Angular 2.0, I think we talked about this in our pre-interview, is still in RSC, right?

You guys made a huge bet on it from that perspective. What’s your gut feeling about that?

Gary: We think that that’s going to pay off. We are fortunate that in what we’re developing right now the delivery date is about a year and a half away. We have time as we mature our product development, we’re anticipating that Angular 2 will mature along the way with us and give us what we want. We’re all ready heartened by some of the developments we’ve seen. Like for instance a couple of months ago, we really wanted dynamic routing, and we now see that that’s a capability.

Some of the reservations are deficiencies that we’ve seen/ I shouldn’t say deficiencies, but not quite all the boxes check if you would that we’ve seen are starting to get checked. We’ve got one or two more areas that we’re holding out for that we think will work for us. The ones we’re holding for, we think they’re on the horizon, and when they’re delivered, we think that will work out for us.

If you don’t mind me just giving an example of what I mean by very complex application, imagine your standard user interface which you’ve got a tab folder and one tab you’ve got a data table with all kinds of recorded incidents and so forth like that. You can click on a row there, and it takes you to the other tab where it launches in context, and you see all kinds of detailed information about that. You can click on that next one and it takes you to another tab with even more information and then you can navigate back and forth seamlessly and all that data is there. That’s the kind of experience that we’re trying to replicate with the Angular 2 environment, and that’s why things like routing and object persistence are very important to us.

Gary: TypeScript makes everyone’s life easier. Now we’re really starting to get excited about modules and what we can do with module loading and the secondary routing and the children and stuff like that. We think that opens up some doors for us as well.

Carlos: All right. This is really interesting from my perspective because everybody has their thing with Angular 2.0 especially. It’s interesting to hear what are some of the strengths and so forth. But you said you still had some reservations or maybe some things you were not a hundred percent clear of. What are you not excited about?

Gary: Well I think object persistence is right now our biggest concern. As you go forward with a project, and you’re using a new technology, you identify potential problems or shortcomings that you see, and you keep those on your radar as you progress to see how those attract. For us, object persistence is probably the single most thing … Worry that we have. We saw some comments in a blog that might be addressed once the router is in final release and so we’re hoping that’s the case. We do have some backup plans where we could take of things and take that load on ourselves but we feel a better all around solution is if Angular would take that responsibility.

Carlos: How about … I think we touched on this in our first conversation … I asked about Angular material. Is this something in your roadmap? Have you considered it? What are some solutions you’re using now to solve for that?

Gary: We have looked at Angular material, we’ve considered it. We have to make some evaluations because we also have our own in-house UX team that works on other business areas. We have to incorporate their work as well so that we can conform to our corporate branding standards and presentation. We have material, we’ve looked at it, we’ve done some tests with it. We’re not sure about our total direction with material yet.

Carlos: Understood. Well, Gary, I have three last questions for you, and they’re now towards a little bit about your own … They’re more personal if you would from a … They’re personal but in a professional perspective. What advice would you give to say your younger, less experienced self? What’s something that you’ve treasured that you’ve learned along the years that you would tell a junior engineer to keep and eye on?

Gary: Well, there’s a couple of things I do. First of all is to keep your eyes and ears open to new technologies and new ways of doing things. I can flash back to thirty years ago when I was talking about some new language with a senior developer that I worked with, and he said, “I know Assembler, and I know COBOL, why should I have to learn any other language?” I think history speaks for itself in that case there.

Keep open to new ideas and new technologies and be realistic. But another thing, another piece of advice I give and this is really more for personal development, is when you’re in a company and this in the context of being in a software profession, every company is facing problems and challenges and so forth, especially in today’s market with higher competition and so many different things, and I say, look for problems. Identify some problems in your organization where you see people struggling and see if you take those and fix them.

It’s a tremendous opportunity for you to make your company better, to learn some new experience, to build skills and working with people and problem determination. Sometimes you can be successful, sometimes you can’t but every time it’s an incredible learning experience and whether or not you’re successful or not, people are still grateful for it, and when you are successful you make a big difference in your company and your career. It’s been my personal mantra for the last thirty-five years.

Carlos: Are there any books you recommend on the subjects we discussed today?

Gary: Oh, my gosh, I just don’t know where I’d start. Donald R. Knuth “Programming Fundamentals.” Certainly, we’ve appreciated the NG2 book. We’re also really interested in Mr. Slaven’s book on routing. I’ve read a couple chapters on his free version, and I’m probably going to go ahead and get myself a copy. But gosh, I used to buy three or four books every year, sometimes more, just to learn about what’s new and what’s going on. I would be hesitant to single out and single one.

Carlos: All right. If anyone listening has any questions or might be interesting in calling at BMC.

Gary: Probably email would be the best thing.

Carlos: All right. I don’t want to share your email with thirty something thousand people, but maybe we’ll put together a link on the show notes in case anybody wants to get in touch, and they’ll do that.

Gary: Okay.

Carlos: Well Gary once again, I want to thank you so much, I think this has been an amazing interview. The goal of our interviews here is to see what you are experiencing within the realm of your job, of what it is to do what you do at work, hence the name of our podcast. It’s a little bit of not only a technical perspective in which you are implementing JavaScript and Angular specifically. You’ve given us a lot of advice, a lot of good stuff to look in to because not a lot of people are working with mainframes. A lot of the people I know at least don’t understand what a mainframe is anymore. It’s really interesting to see how you guys at BMC software are making an evolution of mainframes. You’re making this big jump into some of these latest trends and technologies and I’m really excited about what you’re doing and I think we’re going to get a lot of people asking for more out of this episode.

Gary: Great, it’s been a delight talking to you. Just a couple of closing things. People may not be aware of the mainframe, buy every time you’re using your credit card or you’re shipping something with a shipping company or buying a plane ticket, there’re three or four mainframes that are involved. There may be layers and layers of web applications and servers. But they’re very much the infrastructure and backbone of global business.

One last note, too, if someone is interested on our BMC.com website we have a career section and they can see about job opportunities at BMC.Carlos: Absolutely, we’ll have that linked on the show notes and make sure that we also send it out to our newsletter. Gary, I want to thank you once again for taking the time coming on the show, and I’ll see you soon.

Gary: You’re very welcome, and I appreciate the opportunity. Thank you.

September 15, 2016 / Comments Off on The Developer Advocate’s Quest with TJ VanToll

Hello Tech People!

Today, we have TJ VanToll from Telerik on the show.

We’re going to continue to talk about the role of the developer advocate and some of the experiences he’s had at Telerik. This is a very complex role that requires a lot of study.

Please welcome TJ.

Show Notes

Carlos: Today, we have TJ Vantoll from Telerik on the show. TJ is the developer advocate of Telerik, and also one of the coworkers from one of our previous guests by the name of Jen Looper. We’re going to continue to talk about the role of the developer advocate and some of the experiences he’s had at Telerik as a developer advocate and some of the important points of being a developer advocate. Without further ado, please welcome TJ.

TJ, I want to thank you so much for taking the time to come on the show. How are you doing today?

TJ: I’m doing great, thank you.
Carlos: It’s an honor. As we were talking earlier, I’m excited for some of the work we might be doing together, so this is going to be very exciting.
TJ: Definitely.
Carlos: All right, TJ, for those who don’t know you, tell me a little bit about yourself and how did you end up in tech?
TJ: Yeah, I’m from Michigan. I’ve lived in Michigan my entire life, for better or worse, I guess. I live in Lansing now, which is smack dab in the middle and I guess in attack I was the kid that wrote a whole slew of GeoCities and Angelfire sites back in the day with all of those horrible things you think of, the animated GIFs and the “Under Construction” signs and things like that. It was really my first exposure to technology at all back in, geez, middle school, something like that.

A sort of fostered my interest in the web and that’s sort of my path I took. I’ve been, really, a web developer professionally for about a decade, something like that, and it led to me getting involved in the jQuery Project and eventually my job at Telerik and working as a developer advocate and why am here today, I guess.
Carlos: That’s pretty interesting. Just to add on how you got started, I haven’t had this conversation in a while, but I was also part of that generation of GeoCities, Angelfire. I remember the first time, like the first domain I ever bought, and I felt like I owned the Internet because I could now, I didn’t understand the concept of what a webpage was. I remember being confused at first as to how the whole thing worked, like, “I can buy a piece of the Internet?” Not having to have like GeoCities.com/whoknowswhat and then get to your site.
TJ: Yeah, and then as a kid, too, you don’t realize at the time the vastness of the Internet. It feels like you actually have your own little corner and it’s very special and sort of enlightening.
Carlos: I can remember one of the few websites I did back then, and it was on GeoCities or Angelfire, it was a Nintendo game website, something like that, with how-tos and stuff. Anyways, you just brought back memories. It just made me remember those few days.

All right, so tell me a little bit about Telerik, and will talk a little bit about, this episode is all going to be around the developer advocacy. Before we get there, tell me a little bit about Telerik and what does Telerik do?
TJ: Yeah, so Telerik and also our parent company, Progress Software, it’s basically just a software company. We sell some stuff for various forms to other companies and we do so in many different ways. We make everything from CMSs, web UI components, mobile tools, we sort of span all spectrums. I think at Telerik as a brand is a sort of historically best known both for dot net tools. That’s where the company actually got started in, and also for UI components. We’re sort of known for making user interface components for just about everything. We have Kendo UI for the web, we have things for mobile. We still make Silverlight UI components, if you can believe that. We make just about everything.
Carlos: Got you. So, you guys are basically writing, creating software for other software developers to implement in their software development lifecycles, if you would?
TJ: Correct. Yep.
Carlos: All right. What’s your favorite project? If you pick one of them? What’s kind of the one you like the most from Telerik?
TJ: The product I’ve been dealing with lately is a Native Script, which has certainly been my pet project that I’ve been involved with for a year and a half, maybe even two years now. I think what’s interesting about it for me is that it’s one of the first things we’ve done at Telerik that was an open source project sort of from day one. We’ve released other things open source and we contribute to open source fairly heavily, but native script was the first thing that really we totally embraced that, right?

From day one, the code was out on GitHub and really everything we do around native script has been around GitHub, which is pretty interesting for a company that sells the software, because it’s cool, first of all, to be doing everything out in the open, not behind closed doors, but it can also be scary for a company that, I mean, we are a company, we are a business. We need to make money, so there’s other conversations of, “Well, if you do this, if you put this code out here for free, anybody can use it and such.” Ultimately, you need to find a way to make money off of it to get a return on the investment you made and all of the development that goes into making the thing.
Carlos: Does the developer advocate have a role in that?
TJ: Yes. Really, as a developer advocate, I like to describe the role to people, or my favorite description, I should say, is we’re sort of the in-between between the internal-facing side of the company and the external things. External things would be when we write blog posts, so often times as a developer advocate, we write blog posts. That would mean writing about the software we create, writing about things like Native Script. It can also mean speaking about the product. Having you get the word out, trying to get people to use the software, but it’s also internal, as well. One of the other things we do is help with, say, marketing initiatives so we can help marketers, people that are classically trained marketers that may be don’t necessarily understand the software world, help salespeople as well, for the software that we sell.

Salespeople are very talented people, but often times they don’t understand the nuance of the software developer world. Developers in general are very, very picky. They are one of the groups of people that can smell a sales pitch from a mile away. They know when they’re being sold to. As a company that sells software, you have to take, I guess, a more strategic or a different route if you want to actually gets developers to fork over money for the tools and the products you create.
Carlos: Yeah, in the end, you have to speak their language. I don’t mean to oversimplify, but is it a little bit of translation? Helping the business folks get their message across, but also you’re doing things like using your internal resources for marketing purposes and that sort of thing?
TJ: Yeah, and give you a specific example of this, often times a marketing and sales people, they’ll write up these advertisements or emails that the company puts out, and they’ll make them very buzz-wordy. I think for Kendo UI, which is our web aid product, when HTML 5 became a big buzzword, they would jump on the train and go, “HTML 5-ready” and all these are things that didn’t necessarily benefit with the product. They weren’t speaking to developers. It wasn’t more like “Here’s how you actually use the things. Here’s the problems that you actually, that you can solve using this product. That’s where the role of the developer advocate, at least in theory, can help come in and help those people sort of tailor there messaging and such to the audience that they are trying to reach.
Carlos: Can you give us a little bit of a description of what it feels, what’s kind of the day-to-day responsibilities of a developer advocate? The reason I ask that is I want to say the majority of the people listening to the show are either engineers or in somewhat leadership roles in engineering, and might be thinking, “Well, am I doing developer advocacy already?” They can identify the actual responsibilities and roles that make a developer advocate. What is the day-to-day of an advocate?
TJ: It’s sort of eclectic because we do a number of things. I think at a high level, my day is spent between four different things. I code, I still decode, at least a chunk of my time. But, it won’t be things, like I don’t maintain a production software system. That’s something I used to do and that’s one thing I’m grateful I don’t have to do anymore. I’m not maintaining any servers or any production code base, but I will help come up with, say, samples for common problems that people have. Say, people are trying to use Native Script and a certain problem keeps coming up over and over again.

Well, when I could to do is, say, try to solve the problem myself with our engineering team to help come up with a solution, and then maybe write about it to tell people how they can solve their problems. That’s one of the types of things that I may do. Writing blog posts comes into that.

Sometimes I end up working on the documentation or maybe GitHub issues are associated with those repositories. Another thing would be speaking, so as a developer advocate, at least I and I think most people in this role speak in conferences, perform in workshops, maybe travel to user groups. I think it depends on the company how much people do of that sort of thing.

Usually, once every month or two, I’m giving a talk somewhere about one of our products, and lately that’s usually been Native Script. So, those are some of the external-facing things. The others would be sort of internal things. I spend, for better or worse, I spend a decent chunk of my day in email as well. Helping with various pains were dealing with, help plan certain things that were doing, certain initiatives that we are running as either part of campaigns to help sell a product or a website that were pushing out to the back of various sorts to the people within the company.
Carlos: When you say blogging and writing, do you, I mean, I know you’re an engineer, but do you yourself write blog posts or do you assign blog posts to internal engineers to kind of chip into the marketing side of the business.
TJ: It’s a little bit of both. I definitely right. I write a lot of blog posts, and sometimes working with the engineering team to sort of help make sure I get the content right or help present things clearly, or present things accurately, I guess I should say. Sometimes, I ask engineering to write an article if I think, “You’re really the expert on …” For instance, this is just came up with no-js versions. With Native Script or command line interface affords a ton of no-js versions and it’s a big mess to deal with. I think that’s a good content for a blog article.

I think other people would find it interesting to know how we deal with supporting four or five crazy versions of no JS, and that’s something that engineering has a very specific knowledge of and that it would take me way too long to research and figure all that out myself. The other thing, too, and this is especially new for us with Native Script working with an open source project is we also have a fairly large community of people out in the public, not necessarily Telerik employees, as well. So, we work with these people as well because, obviously, we both have in interest in Native Script success.

These people that are using it, lots of times in their production apps, they want to see the product to succeed. We want to see it succeed as well. Sometimes, we can work with them to write or talk about what sort of things would be good content or even feedback on the product and how to make it better.
Carlos: One thing I want to kind of zoom in a little bit about is the speaking and conferences part. I think it’s extremely valuable for people to speak at conferences not just for the benefits of doing so, but also kind of their own development in terms of their own knowledge. Telus, I mean, I’m probably going to have to ask you some questions we didn’t think of the floor, but how do you prioritize?
How do you come up with, so, let’s say, we’re still halfway into 2016. What are some conferences that you’re going to speak at in the second half of the year? How did you identify those and how did you go about getting there? How is that process? How do you actually do that process?
TJ: Yeah, those are great questions. Measurement is always the hardest part of dev or any activities related to it. If you talk about events in particular, there really hard to track sort of in a funnel-based system where we put in this much money in this is what we get out of it. Much like you send out, for instance, like an email campaign. If you’re sending out a whole bunch of emails to people, you can put, analytic the heck out of the thing and say, “Well, we send it out to 10,000 people, then X number of people click on that and X number of people will eventually pay us money, that sort of thing.

In conferences, you don’t really have that. It’s a sort of nebulous of what your return is going to be. Often times, some of these conferences can have big price tags associated with it, right? It’s not uncommon to have a conference ask for a five figure price tag in order to sponsor some random thing, not to mention the cost of actually sending people out there and take the time out of their days. It ends up becoming a bit anecdotal, so what we do internally is that each conference we go to, we write up a little report on it.

We focus on things like how many people did we reach? What did we sponsor? What did we pay for that? Do we feel like we got a good return off our money that we put into this? It is subjective. There’s no real clear way to look at things. Usually, if you send a few people, you can get a good sense of whether you’re getting your message across and it really that’s the best you can accomplish. In terms of specific conferences, I’m trying to think back, the two big ones I’ve been to this year, I was at NG-Conf earlier this year speaking. I spoke at Phone Gap Day US, which was in Utah. Actually, both of those events were in Utah.

I’ve been in Utah twice this year, which is a weird state. That’s something I never thought I’d say. Coming up, we’re having a Native Script developer day in Boston that’s a coming up in the fall. I think that’s the only thing I’m committed to right now. I know we have some other people going to Connect Tech in Atlanta. Really, all of these things are events that we sponsor that we go to because we’ve been to them in the past and we sort of subjectively felt like our investment was worthwhile and that’s why we continue to do them.
Carlos: How was NG-conf for you guys? I know that you guys were there, and we were there also. For us, and I think I mentioned this to you, it filled a little bit overwhelming. Although I love NG-Conf and I know that we’re going back sure, but how is the experience for you guys? Did you guys like it? What was the turn out?
TJ: Yeah, so I really like the event. I’m with you, though, that it was absolutely nuts. I guess I didn’t really know what to expect, but there were kind of people in their. I think for us, in terms of, to go back to your earlier point in terms of value, what was cool is that because the conference was a one track event, we sort of have a unique ability to speak with a speaking role too, what were there, like 1500 people there? All at once, which is phenomenal. It’s something that you almost never get at a conference.

Most conferences will split people up into tracks and you’ll be lucky if you’re speaking to 100 people, much less 50 people in a room. To have the chance to reach 1500 people, 1500 angular people, which are people that we are interested in, which is phenomenal. We were ecstatic about having a chance to do that, but man that event was just sort of nuts in terms of the amount of people.
Carlos: Yeah, I loved it, and it’s probably been one of the best conferences that I’ve ever been to. I was unprepared for the amount of people. That’s kind of the nut shell for me. I really enjoyed it. The question back to that is how does, and I know that it’s hard to measure, right? That’s the bottom line. Even if it was a great success for you, it’s hard to measure the benefits of actually investing and going to conferences. In conference like that, because it was, like, 8, 10 of you, something like that? It was a large group of you guys.
TJ: Yeah, so we knew that there were going to be a lot of people. We had a booth at the event. Because we had a booth, wanted to make sure that we have enough people to staff the booth and to stick around with it. We wanted to have some of our core engineering team there to answer any questions people had. Yeah, I think we had 8, 9 people, something like that. Quite a few, which it’s an expensive investment and it takes a money not only to pay for that booth, but to fly all those people over. Really, the reason we did it is because we had been to previous NG-confs.

I personally wasn’t there, but some of my coworkers had and said, “This is a good event. It’s well-run, it’s an audience that has some interest in our products, and so we’ll go forth with it.” Really that’s, for better or worse, the best you can realistically do with this sort of thing.
Carlos: That’s 100 percent true. I’m going to shift onto some of the stuff that you’ve had to do in order to get into this role, right? How did you handle the shift from coding all the time to be a developer advocate and non-coding all the time?
TJ: I think I was a web developer of some sort for about eight years before I joined Telerik, so quite a while. It is a bit of a shift. It’s a pretty major shifts, actually, switching from that is really 100 percent of your time to, I think I tell people now that I code somewhere between one quarter and one third of my time. It is different, for sure. In a way, I have mixed feelings about it but I mostly prefer at and I say that because what I get to give up is a sort of the worst part of coding, the part where you get a call because your server or your app went down at midnight or whatever the case may be.

I don’t have to deal with that. I don’t have to deal with managing these legacy, old applications that lots of people have to do in the software development world. I get to work on new things, so the coding I get to do is actually very exciting. It’s very interesting, even if I’m spending less time on it. I do find, one of the reasons I took this role, is as I was coding I found that I genuinely enjoyed writing as well. It’s something that I enjoyed doing and wanted to spend more time doing, which is why I took the role.

I find that having a mix of things that you’re doing, while it can be sometimes a little bit crazy, is actually nice. On certain days, I have a bit of flexibility, too. There are days I feel like coding, so I can just turn off my notifications and get some coding done, and there are days where I prefer to just sit on my back porch and write all day. I have some flexibility that I can do that, as well.
Carlos: Let’s zoom in on that writing thing, because it’s something that I’m challenging myself on, as I think I told you a little bit ago that we were working on our writing, when our blog writing and all that. What’s your method? Is there a thing such as a method for blog post writing? How do you go from zero to finished blog post? What kind of your roadmap for that?
TJ: What I tried to do, whether successful or not, is I always try to just write the first draft of the thing as fast as I possibly can. Sometimes even one sitting, if it’s something short. If it’s something longer, that’s not going to be possible, but I try not to overthink little things because you can get tied up. I mean, I spent half the day writing an introduction, because you can just overanalyze the heck out of everything that you’re writing. I try at least to just go for it. Then, at the end, make several passes through it to sort of clean it out and sometimes, by the time you get through it, use sort of changed your mind about what you’re writing entirely.

Now, does that always happen? No, I’m still victim to the same sort of problems that a lot of writers, a lot of people have. The other thing I’ll say, too, is that over time I’ve come to realize that there are days where I just can’t write. I always try to never have deadlines for the things that I write, because there are some times when I just sit down to write something or do something and I just can’t do it. The nice thing about working as a developer advocate is there’s usually lots of things to do, and so on those days, I just won’t write. I’ll just do something else that I can do, either something more monotonous if I’m just not feeling energetic with the day or something. Coding or just something different to get away from it.
Carlos: It’s impressive how writing, such a basic thing, because we’re writing all day, right? If you see, if you think of the medium with which we communicate, especially through computers, it’s mainly writing, right? It’s mainly words. Yeah, there are some of us like audio, this podcast, we have show notes, so we have to write them. Outside of that, you’re always writing, what when it comes down to putting your thoughts or, say, expending a concept, explaining something, it’s so hard to get that out of your head. I know it happens to me a lot and it’s one of the biggest things that I have to kind of deal with.

Do you find that putting together somewhat in a plan I had, has it work for you? Like putting together sort of an editorial calendar of sorts?
TJ: Yeah. There’s actually two different conversations we could have here. We could talk about planning out individual articles or even planning in advance the things that you want to write. I’ve found that for actually planning out, like if I want to write, like, 5 or 10 things, that has really never worked for me in any way, shape or form just because certain days, I guess I write best when a topic inspires me just out of the blue, like totally like a software developer when a solution hits you.

When you just run across something in your day-to-day and you’re like, “Oh my God, I did not know about that. I have to write about this.” I can be immensely productive if I take advantage of that moment, that inspiration at the time, whereas if I put something on my calendar, it’s like, “Okay,” notification comes up and it’s like, “Well, it’s Tuesday. It’s time to write about no-js. Then I probably am going to look at that and go, “Oh, I don’t want to do this.” I don’t want to make things visible for myself, I want to enjoy the things that I write. I don’t want to make it monotonous. To a certain extent, I can’t avoid that entirely. There are certain things that are just part of my job that I have to write, and that’s just the way it is. That’s not necessarily a bad thing, but for other things, I try best I can to just take advantage of inspiration when it strikes.
Carlos: One of the things that I know it’s kind of a big deal for you guys as a developer advocate is measuring your efficiency. I know that we discussed it a little bit ago in terms of conferences, that it’s hard to measure, but how do you measure the success of an advocate as a job role overall? I know that’s kind of an important area to discuss, what does that look like for you?
TJ: This is also super-hard, and we have lots of discussions about this as well. If you think about it, from a business perspective, at Telerik, we hire our team is seven or eight people, so it’s a decent sized team and we’re a Fortune 500 company. The CEO is going to say, “Hey, dev role was taking up these much assets. What are we actually getting for them?” At a certain point in any business you have to be able to justify your existence, tell people why you’re there. With dev roles it’s kind of hard. There’s a things like the sales division, it’s pretty easy, right? How much did you sell? How much money did you bring in?

Even marketing, you could have these things like “Well, these campaigns that were running, they’ve got X number of clicks, which brought in next number of trial users would lead to this. That sort of process. That doesn’t really exist for dev role, or at the very least it’s more nuanced and sort of hard to prove your value to the organization. There are some things that you can do. For instance, a blog post would be one good example. There are some metrics in there that you can track. You can track how many eyeballs your articles are getting. That may or may not be the right metric.

A more interesting one is if you can write a blog post to get people to click on something that you really want to do. I think when we were chatting earlier, if we use your NG book that you’ve been working on as an example, you could write an article about how to solve some very common angular 2 problem that people might have. Then, at the end, sort of give a mention that you can find content like this in NG book. One of the things you could measure is, “Well, how many people click on that link?” Right?

A business cares about that greatly because bringing in people, especially people that aren’t existing customers of yours, and to your ecosystem, even if you’re just exposing it to them, is a something incredibly valuable. It’s basically like a marketing role. Dev role is sort of half marketing, or is very much in the marketing realm of things. That’s one of the things you can sort of measure, just how many people do you bring in that wouldn’t have been there if you wouldn’t have written this thing that you put out there.

The other thing that we measure is we try to come as advocates, run certain initiatives or certain things that each person is responsible for. When we do that, will put out clear sort of metrics or at least the best we can in terms of the success of that thing. To give you a concrete example, so this isn’t so nebulous, is last year I ran a program that we called summer of native script, which is basically a thing that we try to do to get user groups around the world really, talking about native script. We put out, we build a website, we provided groups with the slides at various other things. The metric for that was just how many groups actually ended up holding a meet up? That wasn’t the thing that we were measuring that area and I think that one we ended up getting, like, 50 some groups, which I think was sort of average.

We were hoping for more, but that was a solid number that we were pretty happy with. Those sorts of initiatives, when you just run something, particularly something that’s sort of outside the rank-and-file things that you do during your day are more measurable. Something you can prove or show to senior-level management or other people to say, like, hey, look, there’s a thing that we did, a physical thing you can go to. You can also see metrics on how that is impacting the business.
Carlos: That, I think is tremendously powerful. It’s one of the most important aspects of the developer advocates because it ties the beginning and the end. It ties the reasoning of why we need that role, right? It kind of makes and shows the business person or the CEOs like, “Oh, I get it. That’s the top of the funnel, right? Those of the activities that bring people to the top of the funnel.”
I guess, again, from a technical perspective, from an engineering perspective, we got it. The engineers and get to the importance of it, but sometimes that’s how you demonstrate it to the business.
TJ: Yep, for sure.
Carlos: All right, TJ, now we’re going to go into the last three questions that are towards personal to you, basically, in a way. One of them is, what would you say is your most pressing responsibility that would, or one day you think could keep you up at night?
TJ: My most pressing responsibility at Telerik?
Carlos: Yeah.
TJ: Wow, this is tough. Probably something Native Script related. I guess I would say the single biggest thing I’m responsible for at the moment is I wrote the tutorials that people go through when they get started with Native Script and am sort of also in charge of maintaining that as Native Script versions come out, angular versions come out, that sort of thing. That’s the sort of thing that I have focused, those things took a fairly substantial amount of time to put together. Also, I think that they help make the experience that people have with the product that the on boarding process for any technology nowadays I think is incredibly important.

We’ve seen from our stats is that a certain number of people will come in to a product and they might just get stuck building out the first steps, or even with the installation before they even get started and just say, “Well, this is too complex or this isn’t for me or just screw it.” I’ve spent a lot of time trying, hopefully succeeding at optimizing that thing and giving feedback engineering as well to try to see if we could supply the process is much as possible for new people coming in.
Carlos: Awesome. What advice would you give your younger, less-experienced self? Imagine you run into yourself, right? You go into a time machine, you have an opportunity to tell yourself something. Hey, do this, because it’s going to improve your life, what would it be?
TJ: It would be to start writing as soon as possible. That’s the advice I generally give to just about any software developers out there. Really, I think when I did start writing, when I did, that’s the thing that got me the job at Telerik, ultimately. Having a blog out there in the world that people can see is an extraordinary way to show people, it’s better than any resume that you can put together, to show that you know what you’re doing, or that you are confident enough to get a blog out to the world. To put your own sort of unique is fan on it and show your knowledge through the articles that you write.

I think that it’s something that anybody can benefit from. A lot of people think that they can’t write. They think, “Well, I’ve just write code, I don’t know how to write words,” but as you said, everybody is writing already. You’re already writing emails, text messages, all these other things. When you write about something, write about a concept, it’s sort of a great way to learn about the concept. You might not think it, but once you start writing about something, you find the need to really perfect it, to sort of throughout the finer points of what you’re writing about, especially once you get into writing about things like documentation, trying to teach others is a great way to learn about a thing yourself. Just to write, both from making yourself look better, professionally and also just hoping to get the word out.
Carlos: That’s great advice. You’re giving me that advice, because that’s something I’m working on, by the way. Thank you. That’s great advice. What book do you recommend, and any of the subjects we’ve discussed today.
TJ: We have native script in action, which is coming out. Manning is the publisher. It’s in their early access program, so it’s not completely written yet, but I am a, what is my role? I’m some sort of editor on the book, as well, so I’ve got to read a few chapters even ahead of what’s already available. It’s quite good if you are learning to learn Native Script. Also, not self-serving for you at all, but NG book is also quite good. Just by chance, I happen to have purchased the book before I even met you are got on this, and so it was one of the things that helped me get up to speed with angular 2 just because adding up to speed with angular 2 is it not the easiest thing in the world.
Carlos: Oh, thank you. That’s a big compliment coming from you.
TJ: I’ll pick one more. This is a pretty popular book, but it’s quite good, CSS Secrets, by Leah Verou. It’s one of those books that’s very humbling. Since I’ve been doing web development for a long time, I always felt like my CSS knowledge was very good or that I knew what I was talking about. Then, I read CSS Secrets and realized that I basically brought myself back down to amateur status just because the concepts discussed are just pretty incredible. If you do web development, if you do CSS at all, it’s a great read.
Carlos: Awesome. Those sound like great recommendations. Now, how can people find you and find your work?
TJ: I try to be TJ Vantoll consistently on the Internet everywhere, so I am @TJVantoll on Twitter, TJ Vantoll on GitHub and my blog is TJ Vantoll.com.
Carlos: Well, TJ, I want to thank you so much for your time today. This has been an awesome interview. We discussed all the points of the developer advocacy, but we went into different areas that I had discussed earlier with Jen Looper from your team. We had discussed a few different topics, so it’s interesting to get kind of the entire picture of what a developer advocate is, does, is responsible for and all the sorts of things. You guys are doing amazing. That’s the big thing about why I thought you guys would be a good team to cover what’s developer advocacy is because your customers are developers, so you guys have to do that job extremely well, and you can teach a lot of us have to do it better.
TJ: Yeah, thanks for having me.
Carlos: Well, TJ, thank you so much. I hope to see you on a conference soon.
TJ: Absolutely.
Carlos: Okay, thank you.

September 6, 2016 / Comments Off on Building a Community with Carl Smith

Hello Tech People!

Today we have Carl Smith from the Bureau of Digital on the show.

Carl is a friend, but also somebody I admire because of his experience building companies, but also because of his role at the Bureau of Digital which is a community that I belong to.

Without further a due, please welcome Carl.

Show Notes

Carlos: Hello and welcome to another episode of Tech People. Today we have Carl Smith from the Bureau of Digital on the show. This is going to be a very exciting interview for me. Carl is a friend, but also somebody I admire because of his experience building companies, but also because of his role at the Bureau of Digital which is a community that I belong to. I think this is going to be a very interesting show. We’re going to talk with Carl about communities, community building, and some of the challenges that present themselves as your building a community and such. Without further ado, please welcome Carl.

Carl, thank you so much my friend for coming on the show. How are you doing today?

Carl: I’m doing great Carlos, I appreciate you having me. It’s always fun to be on this side of a podcast instead of asking the questions.

Carlos: There you go, there you go. Carl, for those who don’t know you, tell me a little bit about yourself, who you are and what is it that you do?

Carl: Sure. I can in to the web industry in the mid-’90s, launched a shop that ran for about 14 years and then just in the past few years, I became part of the Bureau. The Bureau is basically an effort to bring the community together, the web industry together so that we can all work together and make each other better.

Carlos: We’re going to get a little bit more in-depth about what the Bureau does and some of those details because our goal today for everybody listening is Carl and I are going to be chatting about the power or being part of a community and that community is a community that you run Carl, also keeping a community engaged. These are topics or hard things that are part of the whole community building. Also talking a little bit about events since you have so much experience with those. Before we get in to that, what is … If we can go a little bit in depth in terms of you can tell us a little bit about events and a little bit about what the community of what the Bureau actually is. What is the Bureau of digital?

Carl: Sure. Bureau of Digital was founded in 2012 by Greg Hoy and Greg Story. What was going on, they were both running Happy Cog, which is still a really great shop and happened to be the shop that established web standards back in the day and did all these things. This was a shop that everybody looked up to. The two of them felt like they didn’t know what they were doing. When you look at a shop that seems to be on top of a pedestal and yet, is still asking a bunch of questions, it shows everyone that there’s always more things to learn. They invited about 20 shops to come together in Portland, Oregon and spend a few days just sharing what was working, what wasn’t working and I happened to be one of the individuals that got invited to represent my company at the time, Engine Works.

After those 4 days, people who were strangers were suddenly great friends. To this day, my best friends have come from that initial owner camp. Nobody wanted it to stop. We didn’t have community and that was what the Bureau was about. It was establishing community in the web industry where it didn’t exist. That started with owners of digital agencies. People that we thought we re doing just great, turned out, were on the verge of bankruptcy. Others who we thought really didn’t know what they were doing, turned out to be absolutely brilliant. It was just this letting down the guard and everybody starting to learn from each other. Then after that, it moved on to digital project managers and bringing them together, they had no community. Creative directors, operators, there were so many people outside of designers and developers that just never had a chance to connect. Technical leads is definitely one of these groups. Quality assurance people.

After all of this went down, they started realizing that there were 2 types of events that made a lot of sense. One was camps and the camps are smaller. They’re really reminiscent of that initial gathering that they had where you have roughly 30 people, up to 35 people get together and spend that time just sharing what’s going on with them, sharing their experiences and trying to help each other.

Then you have larger events like summits where you have some of that breaking into smaller groups and helping each other like you do at the camps, but also you bring really smart people on different topics together to talk to the whole group. A summit could be 100 people, 300 people, we may be approaching 400 people this year with some of the digital PM summit, what that’s looking like. That thing’s on fire. That’s really the Bureau. It’s this effort to build community where it doesn’t exist and how people in that community everyday, basically by leveraging the shared knowledge.

Carlos: What you’re saying, in your own journey, your agency, is that something that you stopped working on?

Carl: I’m at this point now, it was in mid-June that Greg Hoy and I decided I would go ahead and take over the Bureau and he was going to go back to Happy Cog. There’s no way I can be committed to the community do what the community needs and try to run a service shop at the same time. I’m 48 years old, I’m heading into this final third of my career and it’s just time to get out of the client service business and really just get in to this community space and help all of these other service shops get better.

Carlos: If you could pinpoint, what is your … If you could pick out one, what is your most important role because I know you wear many hats at the Bureau. Which is your most important role would you say?

Carl: I would say my most important role, the thing that I always put number one on the priority list is community support. If I have somebody reach out to me that is struggling with how to handle a situation, it could be a good situation or a bad situation, sadly they’re normally bad situations, that is always my top priority. It’s what I’ve always done and I think it’s what most of us do. When somebody reaches out to us with a problem, we want to help. I think that’s part of the human condition. That would be number one, when someone reaches out to me and they’ve got something going on and they don’t know what to do.

The beauty is we have over 600 shops and over 1000 digital professionals that have come through the events now, so a lot of time, when I’m talking with them, I’ll somebody else who had a similar situation and I can actually connect them. Because that is what I consider to be my primary role, is that support, I can only scale so much as an individual, but when I can start playing that connector role, and start connecting individuals or companies that have had shared experiences and one needs support, that’s when it really starts to work. Then I can play more like air traffic and just help people get to the where they need to be so that they can find that help.

Carlos: What would you say is the hardest thing about being this community leader?

Carl: I would say the hardest thing right now is truly figuring out the business side of the Bureau. We’re very much an events company that’s merging into a membership based community. That’s because I’ve got kids and a mortgage like everybody else so I think the most difficult thing is when you see the bank account starting to get a little low and you realize, I really need to sell some tickets. Because that’s not your first instinct, your first instinct is not to gather people, although that’s really important, your first instinct is to help people, but you have to be sustainable or else you won’t help anyone.

Carlos: Man, that’s powerful. It’s interesting how, not only you have to serve others but also in a way, you still have to serve yourself.

Carl: Absolutely.

Carlos: But, you’re doing it by serving others.

Carl: It’s such a conflict because it’s like, you don’t want to be sitting there hocking tickets. You want to be connecting people and helping them. The thing is, the events are beautiful. I mean, people walk away from those events, you’ve been to them Carlos, you walk away and you’re just like, Wow.

Carlos: Hands down, the best events I’ve been to are yours.

Carl: It’s just amazing.

Carlos: How would you … Let’s say other people that are … How can building a community for help an agency, or let’s … Maybe we don’t have to just go to an agency. Let’s think of an engineering organization, any organization, any company, what are some benefits that they can gain but also what are some benefits that they can provide to a community and what is a community for somebody else? What examples of community could you give us for some of the listeners that might be thinking of starting communities around their company?

Carl: Sure. I think the first thing that I would take out of that is community is this opportunity to connect with other people who have shared goals, shared experiences and work together. If you were to look at the people who are in the Bureau, a lot of people would be like, But, you’re all in competition with each other. No, we’re in an industry where there’s just a tremendous amount of work. Even though sometimes it slows down and speeds up, we rarely bump into each other. It doesn’t feel like competition, it truly feels like camaraderie and helping each other.

I think the biggest thing about community is … Most of us aren’t doing the kind of work where we’re making a huge difference in the world. I know that sounds horrible to say. We’re not saving babies, we’re not correcting climate change. The opportunity to help somebody else once a week, once a day, once a month, it feels good. It gives us a sense of purpose that we’re taking these experiences that we’ve had and we’re helping somebody else either avoid something that could be bad or improve something that’s good. I think that’s a huge part of community as well.

Ultimately, for me, what I see is I see people no longer feeling alone and that is the scariest part of our industry. We’re an industry that’s not that old. The web started 25 years ago according to a whole bunch of chatter on Twitter. If you think about that, we’re only a couple of generations old, nobody really knows how to run a company in this industry. Now in reality, if you look at it, it’s not that different from other industries but most of us didn’t go to business school. Most of us came out of being artists of some sort or mathematicians or maybe computer scientists or whatever so when you find other people and you realize that everybody’s making it up, you relax. You suddenly realize, Oh, I’m doing fine. I’m doing absolutely as well as anyone else.

The last thing I want to share based on what you were asking there, and I saw this the other day, is an African proverb. It says, If you want to go fast, go alone. If you want to go far, go together. I think that really summarizes the power of community because you can go so far when you’ve got other people that understand and that are there to pick you up when you fall over, and that you can help as well.

Carlos: Man those are deep words of wisdom right there. Seriously.

Carl: Thank you.

Carlos: That is powerful, that made me like, Whoa.

Carl: I’ve never really spoken about this. I’m glad that I’m not fumbling all over the place.

Carlos: No, it’s … wow. That was amazing. Mainly … I am part of the Bureau. I’m a member and I came in to the community because I went to an event earlier this year, we were in Atlanta, it was one of the summits. Hands down, the best event I’ve ever been to. It’s exactly that same feeling of knowing that there’s other people that are going through similar struggles and that you can reach out to them to … sometime getting the context right. Getting context of certain things that you haven’t experienced makes you understand what it is that you’re dealing with much easier. I think this applies to not only agencies such as [inaudible 00:13:38], but it applies to basically, it could apply to every type of company. Even if it’s … For example, a lot of the people that are listening in could be part of software engineering groups or product engineering teams at different companies and this could still be applied to them. It’s a matter of figuring out how to start a community from scratch even if your, again, it could be for many scenarios.

That leads me to my next question. Let’s say if you were not working with the Bureau and you were working with an engineering group somewhere in a large corporation, and you were brought in as a community builder or sorts, what lessons would you bring from your experience to start a community from scratch?

Carl: The first would be unapologetic honesty. People are attracted to the truth and even if it’s not a clear truth, but it’s an honest truth. What I mean is, I wouldn’t try to build a community based on something that I know or the organization I work with knows. I would start a community based on something we want to know but we don’t because that will attract the others who are trying to get where we want to go. I think that is the only way you can build authenticity into a community. Without authenticity, without something that keeps people coming back, you really don’t have anything.

I think the analogy that works the best is: A true community has so much value in the middle of it that it’s like a giant magnet. It’s just pulling people in. A lot of times what you see in communities, specifically in communities around a certain business, I don’t want to pick on any but let’s just say it’s wearables and they have an online community for whatever the new running watch is. You’ll see that they don’t necessarily have anything going on and they almost build an electric fence like they lock you in to some sort of a deal to join in.

I’ll pick on Fitbit a little bit. They won’t let you export your data. Guys come on, let me export my data. Let me decide if I want to go somewhere else. Because they won’t let me export my data, they’ve locked me in with this electric fence instead of building value like a magnet to keep me there. I love Fitbit and I love the community but that’s an example of trying to lock people in. I think it’s very much trying to find the desired information that everybody’s looking for. The things that you don’t know but you think will make you better and then making sure that you continue to add-on value once the community gets there to attract people instead of trying to just hold on to them for dear life.

Carlos: That makes a lot of sense in one special way also, is that if it’s something that you don’t know about but you want to learn, you are going to be more motivated to be part of that community and push the community versus if you’re the know-it-all expert it’s a different vibe or feeling.

Carl: Yeah and that’s the ultimate value, right? When everybody can contribute to learning and you walk away feeling smarter, or feeling safer or more in control, or whatever it might be. That’s value and that brings you back. Think about Google. Google never, until recently, when Google first started out, they never had any original content or anything. All they did was send people away. You would go there and they would send you away but they’d send you away to the right place so you always came back. I think that’s the same concept is, you’re going to find the information and yeah, you may have to go off but you’re going to come back because this is where you got the good stuff.

Carlos: Before we jump in to how we can … The community aspect is two parts and it’s probably many parts but to simplify it in to our podcast format, we’re picking to community, overarching subject, and then the tech, the actual events, subject. I’m thinking that the events is how we deliver the value but before we get to that though, if you were to start the Bureau of Digital from scratch all over again, what would you do differently?

Carl: That’s a really great and a really tough question. To clarify, I was there at the beginning as an attendee, I wasn’t there at the beginning as any type of ownership or anything. What I would say is I don’t think you could necessarily start differently because the events lead to the relationships and as human beings when we meet in person it’s so different from when we meet online or on the phone or via email. We pick up on different vibes. We can see each other, we can notice that weird little look, we can pick up on somebody laughing when we laughed and we share something in common because we thought something was funny.

I think to start, those events had to happen the way that they did. I think it was a happy accident. I don’t think in any way did Greg Hoy or Greg Story think this was going to become, there have been almost 25 events now, maybe more than that? Maybe close to 30. All of these people, over 4,000 people that are keeping up with everything. I think you start the same way, what I think could have happened earlier was an opportunity to connect people online in a more, how do I say this? In a more collaborative way.

We use Slack and Base Camp. Base Camp from the very beginning and then right about a year in, maybe a year and a half in, Slack came in to the picture, but what you find is Base Camp is great for evergreen content and Slack is great for in the moment. Everybody’s getting Slacked out. I’m personally on like 16 Slacks, I’m in maybe 17 Base Camps. It’s like a wonderful little race going on for my attention. That’s something we’re working on now is building a space that you can go where you can have easier conversations that don’t feel so important because most people are very busy, but you can come back to them. Then also have that evergreen area where we have learned so much, we’re coming up on our thirteenth owner camp, we’ve had … we’re coming up on our 5th operations camp, we’ve got all of these camps with all of this content through shared note taking, we’ve got to curate that content and we’ve got to put it in a format so that others can come in and learn from it.

That I would say is the biggest change, would be knowing from the beginning, which sadly we did, I’ll have to share with you at some point this mind map that we put together. We knew we had to curate that content and I think that would be the biggest change, making sure that we capture, curate and share the content that the collective group was coming up with just in a easy to access manner. Accessibility’s huge. I’d say that’s the other thing is making sure that anyone, regardless of the size of their shop or even if they have a shop yet, has a way to get in touch and understand the challenges and the opportunities in front of them.

Carlos: What you’re seeing is you’ll … To use your answer and apply it to almost everything is you’ve got start at the beginning. You can’t start at step 10, you can’t start at a … What you’re doing today, you can’t start how you are today, you have to start at the beginning.

Carl: Right.

Carlos: I was reading an article recently from one of the community members, [Oresmus 00:22:13] A Dome of Issues.

Carl: Yeah, Oremus, yes.

Carlos: I’m butchering his last name, I apologize.

Carl: No, it’s a tough one.

Carlos: Oremus mentioned something recently in an article similar to that where he has a sales article, but also talking ideal deal size based on maturity. It’s almost, you got to start at the beginning, you can’t go for X goals when you’re small. It’s sort of the same thing, you got to start at the beginning, you can’t run, you can’t start the Bureau all of a sudden farther than the beginning. Anyways. Let’s go in to events. I think you’ve been doing this for years now, but again, you spent several years on the presenting side of events. How does that experience flow over to organizing events?

Carl: It is really interesting in that, and I know there are a lot of people who have gotten on stage a lot more than I have, I have been on stage 100 plus times and sometimes it’s 5 people in a room and sometimes it’s 7,500 and I think the similarities are the nervousness. The difference is, when you’re on stage for 20 minutes to an hour you get off the stage and you’re not nervous anymore. When you’re running the event you’ve got that on … You’re on deck the whole time. You think about it the whole time. What I would say I brought is an appreciation for what the speaker is going through when I am helping organize. I want to make sure that they have everything that they need. I want them to have that space where they can go and cry or punch the wall or whatever they need to do before they walk out. I want to make sure they have that convenience monitor so that they can see the slides. I want to make sure that there’s no surprises for them. By the same token, being a speaker, I want to know that they actually prepared because I know I’ve been through those moments where I was just like, I’ll just figure it out. I want it to appropriate and not appropriate, that sounds wrong, but valuable. I want it to connect with the audience.

I think that the one role that I’ve played the least is the audience. I think ultimately you have to look at it from all three angles and say, Is this providing the value to bring people back? From the organizer’s perspective, Is this providing the value so that we can come back? Events are very expensive. It’s interesting because you look at like the UK and the cost for events is much less. They’re very price-sensitive. You look in the States and our events aren’t cheap, by any stretch of the imagination and then you’ve got an event a part and you’ve got some other where that price point is up there. It’s one of those things that if you’re not bringing the value through new content, not just entertainment, because I think that becomes a big issue, because a lot of times events are just entertaining, I love Aaron Draplin and I love James White. They bring a lot of value because they make you think different. A lot of people would say. Oh that’s just entertainment. I’ll be like, It is entertainment, but it reminds you, it reminds you that you’re in control and that all of your experiences add up to something.

Whereas I’ve seen other speakers who get up there and they’re hilarious but at the end, you’re just like, Well that was funny. I know I’m all over the place here a little bit, it’s a really great question, but I think ultimately, from being on stage to trying to be managing, it’s all about making sure that it’s cohesive. I’ll tell you, Brett Harnett does an amazing job of this. He manages Digital PM Summit and he’s taught me a lot about what we’re doing with Owner’s Summit, which Greg Hoy had played a tremendous role in as well. That’s trying to make sure that you’ve got your programming in a way that is logical. That everything lines up so that it’s building on itself.

Carlos: How do you curate that? How do you … Let me expand on that question. Let’s say I was at the event in Atlanta and there were some talks that did not apply to me that I was … that it was not part of my contextual experience, if you would, but I’m sure that it was for many other people and they were probably, those talks were full. That’s why you have multiple events at a time or multiple chats at a time. How do you pick that? How do you find a common denominator and how do you then also bring in things that are part of, again, not people’s common denominator so that they are exposed to something new? How do you keep that balance?

Carl: I’ll tell you a little bit of the secret sauce. We look in the Base Camps and the Slacks, we look at what is being published on Medium that is really popular, we look at what’s being talked about on Twitter. We try to find what are the topics? What are the things that are happening? Then we know because a lot of our speakers come from the camps. We know who’s really passionate about a topic, we know who’s real intelligent about a topic and we try to line them up. I think a great example from the event that you were at, at Owner’s Summit, is Lori Gold Patterson. Lori Gold Patterson spoke about diversity and inclusion. What a lot of people don’t realize was that was the first time she had ever given that talk.

Lori was at Owner Camp 10 in San Francisco and that conversation came up organically. Afterwards, I walked over to her and I said, You know, we have an event coming up in February and I would love to get you on stage because what you just expressed, I think, summed up so many things we didn’t know. You just shed light on all of these areas we weren’t aware of. That’s a huge part of it is when we hear somebody say something or stand up for something or share something that resonates with us because most of us had a shop at some point, we make a note of that and approach that person right away.

Then the other part would be sometimes there are people that the industry, in our community, is a little infatuated with and so we’ll reach out. We’ll just see, does this make sense? Is this person interesting? Last year for Owner’s Summit, earlier this year, Blair Enns. Blair actually reached out to us. That was an interesting thing because we weren’t sure, we knew we had hear his book Win Without Pitching had been mentioned during a lot of camps. When I went back to look in the notes, it was referenced at least every other camp, it was put in the resources. It was like, All right, that’s the community telling us what they want.

I’ll tell you Carlos, one of the big changes that you’ll notice going into 2017, we’re going to talk with the community a lot more about what we bring and for me, this goes back to an article I read in the ’90s and it was the head of a very large computer company at the time, Gateway. They’ve gone under or were acquired so hopefully that doesn’t mean anything about this information but they were talking about the person who was in charge of all of the specs on the machines, the way that everything worked. The speed, the storage, everything. They said, is that not a tremendously intimidating job? And he said, No, I just listen to what my customers want and I just give it to them. I think that’s exactly the same thing with the Bureau. We’re going to open up more channels and we’re going to ask and listen and we’re going to try to give the community what it wants, not necessarily specifics, but just understanding themes and knowledge points.

Carlos: How can somebody starting a new event, let’s use my company as an example. Let’s say we want to start giving back to the Miami community and putting some educational tech events around engineering. That’s a hunch we’ve got by the way. How can we make sure that we are putting an event like that together but not only pushing our agenda forward, but also making sure that … We want our agenda to be there, we can’t ignore it, but at the same time, we don’t want it to be the only thing that is exposed. How does a company leverage that?

Carl: Obviously if you go out, and you’re right, you can’t go out just with your own agenda, because if you do, people will know. It’s pretty obvious. I would say talk with the people in your company because it really depends on who you’re trying to attract. If you’re trying to attract customers, if you’re trying to attract recruits, however it might be, but I would talk to those individuals. I would go to other events where you think those people will be and I would see what’s resonating and what’s not resonating. Ultimately it’s about understanding what’s there now and what’s not. If there’s specific, even if it is part of your agenda, if there’s specific things you want to accomplish, look and see who’s already accomplished them. See if you can get in touch with them. See what you can find out. Even if you start small with a meetup type format just to test things out.

That’s something that a lot of speakers, I don’t think it’s any kind of secret, but a lot of times when you have a new talk, you’ll go to a local meet up and give it just to see how things went. Did people think things were funny I thought were? Were the ah-ha moments where I expected them? I think it’s the same thing when you’re putting on an event. You can start small and grow in to it. Converge, which is a great event out of Columbia, South Carolina really started because Gene Crawford was part of 5 different meetups and he was tired of traveling so much. He was constantly in his car driving from meet up to the other so he asked all 5 meetups if they’d be willing to just meet at the same time and that became the origin of Converge.

Carlos: They converged. That’s interesting.

Carl: Exactly, right? I think that would be the biggest advice, is start small with the topics that you think are going to help achieve whatever the goals are and find people who are passionate and or knowledgeable. Sometimes you have people that are very passionate that aren’t very knowledgeable but you still learn a tremendous amount from listening to them. Let it grow from there.

Carlos: In fact, the first version of this that we’re going to put together is basically turning this podcast, Tech People, in to a live … like a community, a in-person community where eventually it turns into a conference and so forth. That’s something down the line but I’m really trying to figure out what is the first step and I think putting a meetup together as a first thing might be a good move, but still that seems like such a large undertaking of unknowns.

Carl: It’s a commitment and before you do it, make sure you’re ready. I’ll say this about letting the podcast be the origin, I think that’s brilliant. I have a podcast with Gene Crawford called BizCraft, it’s much like Big Foot. You never know when or where you might see it. It occasionally shows up, but we did some live episodes and I walked in to this room and there were over 100 people in the room and I turned around to leave because I thought I was in the wrong room. I was like, There’s no way. We’ve had up to 5,000 people listen, but you don’t expect 100 real people to show up. One of the things we saw in there was the pricing episode was the most popular episode so it made sense to let that be some of the content that we generated on the live version of the podcast as well. If you go back and look which episodes of your podcast had the most listenership and the deepest listens, that’s a great way to basically program those initial meetups.

Carlos: Yeah. In fact, the podcast is starting to be somewhat of a idea generator for even articles and talks and …Carl: That’s great.Carlos: It’s kind of an input to ideas. We get to have these conversations that it’s going to sound … I get to learn a lot. Not only does the audience get to learn a lot but I learn a lot because I pre-interview you. I prepare the questions, it makes me think about our conversation and ultimately try to get the most value for people listening. It’s teaching me a whole lot.

Carl: I have mad respect for you that you prepare because my whole career I’ve just shown up and I think if I were to prepare, things could be a lot better. Thank you for being on top of it.

Carlos: Oh no, that’s something I’ve been trying to do a little but more and more. Carl, I think we covered most of the topics that we were going to talk about in terms of community and events. Now, I have three last questions that are towards you. What advice would you give your younger less-experienced self?

Carl: I would say relax. It’s going to be fine.

Carlos: Chill.

Carl: I started out with this mad fevered pitch of the world was going to fall apart if I didn’t work 80 hours a week.

Carlos: That’s how I feel.

Carl: And it’s just so not true. Things are going to happen. It just takes time. That would be my advice, I would just tell myself to relax and enjoy my youth a little bit more.

Carlos: Powerful stuff. What’s a book you recommend?

Carl: It all depends on where you are in your life. I will tell you that a book that I recommend specifically to my friends who are in leadership or organizing some sort of an event is The Starfish and the Spider. The Starfish and the Spider is this amazing book about organizational structures. The idea is that a spider is a traditional hierarchy where a spider has a head and a starfish has no head. The examples would be, Microsoft would be a spider and when Bill Gates was in charge of it, had something happened to Bill Gates, Microsoft would have been in trouble. Right? If you look at, I’m forgetting the name of it now, but it wasn’t Napster, it was who came after Napster, eMule or one of these, where there’s truly nobody in charge, it’s the community and so it just goes on and on and on. A great example of that actually, is the Apache Indians.

The Apache Indians repelled the Spanish when Cortez came in, when he first came in and he went to Montezuma, and the Aztecs, he told Montezuma to give him all the gold or he was going to kill him. Montezuma gives him the gold and he kills him and poisons the water supply and no more Aztecs. Right? Go to the Apache and he says take me to your leader, and they didn’t understand the question because the Apache didn’t have leaders. They had Nontons who were spiritual leaders, but just like if there’s somebody that’s the smartest person in the room, when that person gets up and leaves the room, there’s still a smartest person in the room. That’s the idea of the starfish, is that even if it gets cut in half, it grows in to 2 new starfish.

When you can build an organization that can replicate itself, that doesn’t need leadership, and I don’t mean in the way of Zappos and Holacracy, because I think there’s a whole lot of marketing going on there, I mean in the way of people being able to opt in and self organize and truly have shared vision to a point. I think that’s when you get powerful organizations. Starfish and the Spider, I know I went off a little bit, but that would definitely be it.

Carlos: No, but that’s a good recommendation. I have never heard of that book. I’m going to check it out. How can people find you and your work? Tell us a little bit about what’s some of the upcoming events for the Bureau. You’ve got a lot of things going on. Tell us a little bit about that.

Carl: Yeah, so you can find me on Twitter. It’s just Carl Smith, C-A-R-L Smith. That’s probably the easiest. Anything that I’m doing I’ll generally push out from there. Then we’ve got Owner Camp 13 in Scottsdale, is happening this September 14 through 17. Excited to have Jesse James Garett from Adaptive Path there to hear about selling Adaptive Path to Capital One and what that was like. He’s still there so I’m not sure exactly who much he can share but I get the feeling he’ll share quite a bit. Then we’ve got Digital PM Summit coming up in October, that’s October 12 through 14 so that’ll be about 300 plus digital PM’s getting together, sharing with each other and a lot of great speakers are going to be there. All around managing projects and different angles of that.

We’ve got a new keynote that we haven’t signed yet but is going to be amazing so check in the Digital PM Summit and see what that’s all about. Then we just announced, quietly, that Operations Camp 5 is going to take place December 4 through 7 and that’s going to be in Asheville, North Carolina. Asheville is a magical city already and to be there right around the holiday-type time is going to be pretty amazing. Yeah that’s what we’ve got left for this year.

Carlos: That’s very exciting. I’m really trying to make it, I got your email recently, I think today about Owner Camp. I want to, hopefully I get to come this year.

Carl: Oh dude, that would be great. It would so good to have you there Carlos.

Carlos: I’d love to. Well Carl, I want to thank you man, so much, this has been an amazing interview. You covered a lot of stuff that … and taught us a lot about community building, about events, about again the context in which you live, and how it affects so many people. Thank you so much.

August 29, 2016 / Comments Off on How to Contribute to the Open Source Community

Show Details

I’m honored to have Jeff Whelpley on the show. Jeff is the CTO at GetHuman, and a regular contributor to the Angular Open Source community through his video podcast AngularAir and the Angular Universal project.

In this episode Jeff guides us on how we can all contribute to the open source community.

Topics we discuss:

1. Jeff’s Background
2. GetHuman and Jeff’s Role There
3. Responsibilities of the CTO Role in a Small Growing Company
4. Giving Back to the Open Source Community
5. How to Give Back?[/az_column_text]

Related Links:

Show Notes

Carlos: Thank you for tuning to tech people, where real life tech practitioners share their professional experiences.

Hello and welcome to another episode of tech people, today we have Jeff Whelpley on the show. He is the CTO over at GetHuman which is a startup that helps consumers connect with companies and get to customer service easier which we all know it’s a pain and they do a pretty good job at it. Also Jeff is the host of AngularAir which is a live video podcast covering all aspects of AngularJS.

I already hope you enjoy this episode, we talk about a lot of subjects and one of them is giving back to the community which I think is really important. Without further ado welcome to the show.

One of the things that we wanted to touch on today was some of the context of what it is to be a part of leadership at a startup and also have the time to contribute so much to the open source community and do all these projects that he does. Jeff thank you so much for taking the time to join us on the show, how are you today?

Jeff: I’m doing well Carlos, thanks for having me.

Carlos: It’s a pleasure, as people do we were just talking about the weather here in Boston right?

Jeff: Yeah, I have lived in Boston ever since I went to college here at Boston College over a decade ago.

Carlos: Are you originally from Boston or where did you grow up?

Jeff: I grew up in New Jersey actually in a little town called Chester which is about an hour outside New York City. Then I moved up right after college and worked here for a couple years but when the dot com crash occurred in 2001 or late 2000 there wasn’t a ton of job opportunities here and I actually moved to the West Coast for about 8 years before moving back to Boston about 4 years ago.

Jeff’s Background

Carlos: Just so to give us a little bit of context again, you are very accomplished and your career and also known in the open source community around Angular specifically, how long have you been doing what you do to this day?

Jeff: There is I guess, different aspects of what I do, at a high level I got into tech in college. I was actually started off college wanting to do premed, I wanted to be a doctor really and-

Carlos: You and I both by the way.

Jeff: Oh really?

Carlos: Yeah. I did Biomedical engineering, then I did my MCATs and everything then I started the company in.

Jeff: Oh wow.

Carlos: This is your story.

Jeff: You went further than I did because I just liked the idea, I was interested in medicine but I think during college they give you these preparatory meetings at night, where doctors tell what the life is like, and some of the details. I just decided during some of those that it just wasn’t for me and I started looking for other things. Somehow I had always somewhat liked technology but I just started trying out a couple courses, and it just stuck and, I’ve just been super passionate ever since, so I got my CS degree at Boston College and got a job at a really hardcore consulting company right out of college.

It’s just sort of been, from there drilling into different aspects of technology, both from software development side like actually doing the coding, then more recently past five years doing a lot of product management and kind of product vision type stuff. As well as the leadership stuff and kind of growing teams and that type of thing. It’s one of these things where it started off just as a passion of technology and it’s kind of grown from there into today I do probably like a half a dozen different things including different aspects of technology.

Carlos: Right and we’ll probably jump on a few of those because that’s kind of the … What’s interesting is how you’re able to manage all these different things. You work at GetHuman right, that’s your day job?

Jeff: Yeah that’s right.

GetHuman and Jeff’s Role There

Carlos: What is Gethuman and what is it that you do there?

Jeff: Gethuman is a company that tries to solve a really difficult problem which is basically how bad customer service is. I’m sure Carlos you probably had to call a company at some point in your life to deal with some sort of issue right?

Carlos: Oh my God, all the time, it is the biggest nightmare and pressing all those buttons.

Jeff: Yeah I mean this culmination of the fact that it takes a long time and when you finally do talk to someone it can be very aggravating and at the end of the day the reason for that is that the power dynamic right now is all in the favor of the company. For the company they are focused on squeezing you in general this is, for your top value. There is all sorts of enterprise software built around getting the most value per user and companies action sort of center around that.

On user side, you have to deal with all these companies but you don’t have nearly the tools and the ability to manage companies in the same way that they manage you. That’s sort of the problem that we’ve always been trying to solve starting off with just giving easy ways sort of you don’t have to wait on hold for when you do have to call a company. That’s sort of where GetHuman started as this directory of tips and tricks through the call mazes, but now we’ve evolved since then to just solving the entire problem where you can kind of hire us almost like TaskRabbit style but focus on customer service and you just, “Here is $20, and okay I want to transfer my service,” or, “I want to lower my Comcast bill” or something along those lines.

Carlos: Oh wow, I was aware of what you guys did in the past but I didn’t know that it had evolved to something like that. I’ll tell you, I have a quick funny story, so last year my wife and I purchased our first house and it was, as you might imagine it was a big deal for us and just everything was very hard, being a business owner you have to jump through a bunch of hoops. One of the biggest hoops that we had, we had some issues with basically getting transcripts from the IRS to our bank to the bank that was going to approve us.

I kid you not, I probably spent one week where I probably was in the phone for more than 20 hours, on hold. Because there would be a day where I had to talk to somebody and I swear 4 to 5 hours to get somebody on the line. As easy as, “Oh no well we actually need this other thing, call back tomorrow after you got it.” I had to do that same thing all over again the next day and I mean, to this day I’m kind of traumatized by the whole experience.

I never want to call the IRS ever again, you’re better off going to a local IRS place. Like here in Miami you have to be there at 4:00 in the morning if you want to get in to get a turn for the day. I rather do that than be on hold for hours on end. You guys are solving that problem but doing it for people?

Jeff: Yeah yeah, and then the IRS is the worst, I’ll tell you that. In fact we have a free tool that anybody can use in general to avoid the wait time that if you give us your phone number we’ll call them and then just call you back once we have a live person on the phone, but for the IRS that tool, and the IRS and a couple other companies it doesn’t work because they have actually … The IRS agents have a script against us, like us specifically GetHuman. That when our robot gets through to them they automatically hang up, and also just their call tree, even if you’re calling, they regularly will just drop the call.

They just say like, “Oh too many, too many people are trying to call the IRS right now sorry call back later,” and they just drop you. One thing with our, you know premium, our concierge service, or whatever you want to call it where people pay us to solve their problem. Sometimes people do it to like solve like a specific issue like, get us this form with IRS or whatever but now because it’s so hard to contact them, people will just pay us to, “Okay you guys just get somebody on the line, then three way call me in, and like that’s all I want you to do.” Just so that they don’t have the problem that you dealt with of all the aggravation of waiting on hold for 20 hours.

Carlos: Understood, all right and so tell me a little bit about your role as … I know your official role is the chief architect, is that a different term of CTO, or do you work also with a different person who is the CTO?

Jeff: Actually in, I think the month or so since I talked to you last kind of preparing for this that sort of change. I am actually the CTO now, I know the title is like a small startup that’s the thing is that they don’t mean very much because at the end of the day when you have less than like 10 people everybody does everything to some degree. I mean chief architect, CTO chief technology officer whatever, you know that you are a sort of near the top dealing with technology and to be honest, even if I gave you a definition, people will have different definitions for these things so I don’t think it’s that big of a deal.

At the end of the day what I do is I am in charge of technology at GetHuman so that means not only today doing a lot of the development myself because it’s a smaller company but as we kind of grow it’s hiring all of the technical staff, I’m setting the technical direction. You’re deciding, basically having an impact as well on kind of product decisions on how we actually build our products and what we focus on.

Responsibilities of the CTO Role in a Small Growing Company

Carlos: Got you. Yes, there is not a big difference in the roles per se but it’s interesting to see how a lot of people that are in larger companies they might imagine let’s say, lot of listeners of the show are probably working at a corporation, let’s say VMware, Amazon, Google whichever you might imagine and there are more of what I call their day to day is working on user stories building products within a product team.

It’s interesting to get a little bit of the context of what leadership does and why there is a CTO in a company and that sort of thing and more than likely people know but at the same time it’s good to hear from yourself, so tell me a little bit about, what is a typical week look for you? Let’s say within a company that as you say is not as large yet but what are some of the responsibilities of this CTO role within a small company in growth mode?

Jeff: That’s a good question and before I start getting to that one thing I’ll mention is that, I did have in the past filled some of the other roles that you’ve mentioned. I used to work at Wells Fargo which is a very large company and I was an enterprise architect there for a little bit and then engineering manager. I understand at the larger companies how some of those, like some of those titles actually do mean kind of specific things and more segmented in kind of what they focus on.

For me now, maybe I’ll contrast as I kind of go through this, some of the differences with the larger company roles that I’ve had. Like for me right now, one thing that’s I guess different is that at the larger companies I dealt with we do planning on like kind of monthly cycles or maybe sometimes even multi-monthly cycles where we’re saying, some larger item, the businesses has all these queue of staff, and like okay, over the course of these next couple of months this is what we are doing. That type of thing is like impossible at a smaller company because things are moving so quickly and you’re doing so much that although you do think a little bit about stuff down the road, you have to, really every week, you kind of have to reconnect with everybody.

If you think of things in terms of the scrum cycles, the Agile cycles it’s really no more than a week because so much has changed so you have to say, in the beginning of the week, okay this is we’re at, this is what we have to focus on this week. Everybody is synced up now go do it. When we go and do it, through the week it’s a mix of, because I’m a smaller company I am implementing a lot of that myself but then also I need to set the stage for the next week of activities.

There is usually on my own personal board I kind of have a mix of specific development tasks that I’m deploying that week, as well as planning out like design stuff like trying to figure out for this particular product the overall user design so that, for the next week that someone else can start working on that. You need to be able to set things up so that you can quickly iterate. Then on top of all that, these past couple of months have been especially crazy because we’re trying to raise money so CTO, CEO at the top you … Especially for when you’re raising money there is all this extra responsibility to start going out, they’re talking to investors, getting other advisors involved.

It’s not just the pitching, when you’re raising money there is a lot of stuff involved with getting a whole horde of different people on your side and kind of pushing in your direction to help you kind of land whatever goal it is you’re trying to achieve in terms of investment.

Carlos: Got you, yeah there is a lot of moving parts that are running at maybe different speeds so you can’t necessarily just defer to like a standard Agile cycle, it’s like you have to be more agile than Agile is kind of what … Right?

Jeff: That’s a good way to say it, yeah, yeah.

Giving Back to the Open Source Community

Carlos: All right, but that’s the thing. I can imagine a little bit of that chaos and a little bit of what that looks like but I know that you’re involved in the open source community, in different aspects and with different projects as you mentioned, probably half a dozen. Let’s touch on a few, you’re doing AngularAir and so how do you have time for AngularAir, and tell us a little bit about AngularAir for those who don’t know what AngularAir is?

Jeff: Sure, first Angular which I know Carlos you do some work with Angular right? It’s a frontend Javascript framework that’s used for building web applications. Actually with the more recent version of Angular they sort of expanded so that focus is on building apps in many different types of environments so not just web apps but also mobile apps and desktop apps, and that type of thing.

AngularAir is an online video podcast so that’s the extra element of not just audio but video to go over various topics in the Angular community. So typically we balance between discussion shows where we kind of just talk about the latest happenings in the world of Angular to more focused kind of tutorial shows where we’ll take something like the UI router for example that we did this week. We’ll have the main maintainer of the UI router project and he’ll come on and give 3 tutorials where we’ll comment on as he’s kind of going through it, ask questions and that type of thing.

It’s almost like an Egghead.io type style tutorial except you have other people involved that are kind of giving feedback in real time. That’s working well and I’ve been doing that for about a year now, a little over a year. Then it’s a lot of fun, I know you do this podcast obviously and I think for people that do it it’s a great way to like meet other people and kind of stay on top of a lot of different stuff.

Carlos: Yeah but it is a lot of work and I tell you it is … I’m able to spend a lot of my time doing this, and I also have say the day job responsibilities but how do you do it, how do you … When I say how, I mean specifically like do you do this after work, do you do this in the office? How do you execute it?

Jeff: I would break down to like three different parts, so there is the actual show itself, like when everything is happening and we’re actually recording the show. That in some ways is the easiest because you just have to like, you’ve already done all the prep and everything you’re just doing the show. It’s just a matter of allocating that hour so I do that during the week and it’s just one hour a week during the week that I would do that on Tuesday afternoons.

The harder parts are the two other parts as far as time consumption and managing that, so one is, a lot of the nitty gritty for like editing the audio, and like making sure the website is up to date. Like all of the stuff like the prep for it and then afterwards post production. Now, for that I have started to like automate/kind of defer some stuff to a production company that I use. That helps a lot, but it doesn’t solve everything. It’s not like you can just throw everything over a wall. It’s more been like an ongoing process of like figuring out how to like slowly start pushing more and more over to them.

Then the kind of third part is that last remaining stuff that I basically can’t have them do yet that I still have to do, and for right now for me for the show it’s actually like finding guests in the first place, like doing the sort of cultivation and talking to them and like kind of setting things up in that same point and then like coming up with the initial topics and like the outline. There is a lot of stuff that maybe I would never outsource anyways but that is more of an … It’s the hardest I say because the time needed to do that is like more unknown, like sometimes it could be quick sometimes it could take many hours.

Carlos: Right because in the end you want to have quality in the show, you don’t want have somebody come on the show without a purpose in mind. You want to have a little bit of a curation in what everything looks like. It seems to happen to me with this show is we have different subjects that we cover and not just different subjects but also different people have different experiences so that’s why it’s called Tech People at Work is we want to know what that work means for them because everybody, work means very different things for everybody.

We recently had one of the chief technology and I apologize because I forgot his full title but he’s like an agency CTO at NASA on the show. His day job is very different, he’s in a public, he works with the government so it’s like a different ball game and I had never been exposed to this sort of thing to his worries. Like he’s worried about things that maybe you and I don’t care about, for example like plugging in those E-cigarettes, you know how they need to be charged, so you need to charge them. People charge them using their USB port, it turns out those thing can have malware and you know who cares about malware and security? The government, especially NASA.

It’s interesting to hear that point of view but then also hear your point of view. You got to prepare for those things. Also aside of AngularAir though you are also part of an open source project, Angular Universal right?

Jeff: Yep, that’s right.

Carlos: How do you do that to this date, is it you doing main contribution or do you manage the project overall?

Jeff: I’m definitely not the biggest contributor to this library. I was at the very beginning of it but Patrick consistently, Patrick Stapleton who’s the person who started that library with me over a year ago. He continues to be the person who contributes the most code to it and then some other people who’ve come and jumped on board since.

Carlos: He’s at GDI2290 right?

Jeff: Yes, that is right. That is right. He’s the best, I love Patrick. Basically what Angular Universal is, is a library that is part of the Angular 2 Core that allows Angular 2 to run on the web servers. It’s mostly used for like SEO purposes or when you have a publicly facing web app and you want it to be search indexed or you want it to load very quickly in the browser, that’s what it’s very good for us. It’s one of these things that was almost impossible in Angular 1 to do something that React … You were able to and a lot of people who were excited about when the React came out. They made it a big point to build for the internals of Angular2 this ability to render in different environments.

The thing that Patrick and I have been working on here sort of takes out and runs with it. There’s … It’s as way things where it is at the end of the day something in some aspects is so small and simple. I mean you are just talking about the initial, very initial load of a web app. When you first click, type in the URL and you go to a page and then that’s it. It’s just with that first load up of the app. From that sense it’s like this small simple thing but it has such a big impact. It’s so impactful for publicly facing web apps and there’s like … The library is pretty intricate in terms of there’s so many different pieces involved with it that when you start actually building it in and expanding on a lot of features. You realize that this could … What someone might think is like weekend project. It really is like this multi-year effort to build this perfect tool just to provide this 200 millisecond of experience.

It’s kind of funny from that perspective but, it does a lot … Anybody who is creating publicly facing web apps love it. They love the fact that it’s part of Angular 2, they love that Angular Universal exist so we’ve been getting a lot of great feedback

How to Give Back?

Carlos: The natural question of course is, let’s say some of the people that are as an engineer again working in that team and they hear this podcast and they see what you’re doing. We all know the benefits of contributing and giving back to the community. Let me put that in better terms, I don’t think everybody knows I think they’ve heard of the benefits right? They fantasize of the benefits, but they don’t know how to get started. I think the first question is how does one get started? Let’s put it in perspective for you. How did you get started, how did you think that this was a good project to start working on and making a part of the open source community for Angular?

Jeff: Yeah it’s a good question. The way I get started is, I’ll talk about my specific thing and then I’ll talk more general about how kind of, I think other people can usually get started. For me specifically, about three years ago, we had a very specific problem at work that we were trying to deal with. That GetHuman back then was just focusing on like the contact information thing and we were just starting to talk about expanding out and doing all these other crazy things.

One of the important requirements that we had for this new app that we were building was that it had to be search engine friendly like we are a publicly facing site that gets a lot of organic inbound search traffic but it had to have a lot of real time features, a lot of using … Where we use Firebase but whatever. You happen to use to provide this kind of real time feel and interactivity once it uploads up, the page loads on the screen. Mixing these two worlds that started me down this path. Back then … Again this was like three and a half years ago or so React wasn’t really much of a thing and Angular 1 definitely was just in its infancy and didn’t really have … It definitely did not have anything like this.

There’s really just Backbone and if you remember there was a library called Rendr that Spike Brehm from AirBnB had created. That was really the only thing out there for the most part that to do this type of thing. Basically because nobody else had created it and we really needed, this was a first class citizen important thing that we needed. I just decided, “Okay I have to build this.” I started building in … I started trying to use Spike’s library but I realized that it probably wasn’t the best idea to build everything off of Backbone like Angular was starting to really be up and coming so I said, “Okay I’ll just do what Spike did with Backbone for Angular.” I’ll just build the equivalent right?

To be quite honest, if I realized how hard that was back then I probably wouldn’t have done it, I probably would have given up a long time ago. I started naively thought that it would be like this just couple week project and fast forward I think it took me probably six months to get out the initial prototype. I definitely realized how in-depth and crazy it was. I ended up having to do, I went through a number of different iterations and I ended up to actually create my own completely separate library not … Although it took Angular 1 syntax and the code of Angular 1, it was a completely different rendering engine like that I just kind of duplicated some functionality and kind of wrote it fully separate because the core of Angular 1 was so intricately tied to the DOM and to the browser that it was just impossible to do it.

By doing that and that experience and as I was doing I’m like, “Oh maybe I should open source this because this is something that people would find useful.” I did try to open source that, the problem was because it was sort of this tack on thing that … I mean really was a hack at the end of the day and not really generalized to meet everybody in the world’s use cases. I did have some people trying it out and using it but they ran into a lot of issues and I just didn’t have the ability to support it. I was frustrated, I was starting to think about how I could deal with that when Angular 2 came along.

It just was this confluence of different serendipity or whatever you want to call it, different things that Angular 2 did have the potential at that time to do server rendering but it didn’t actually have that functionality yet. I had just started to make more connections with the Angular Core team and Patrick Stapleton started talking with me about this too, that all these different events coming together that, I was like, “Okay all the stuff is aligning, let’s just work on this all together.”

It just worked out that we were all kind of at that point that we all needed it. I needed it for work they wanted it for Angular Core and so we were able to build this more general library for Angular 2. To shorten that story is that, and sort of how I can translate that to the more general thing, is that I was able to align my needs for work with doing open source stuff. That’s why it really what made it possible whereas, I don’t think I could do it if it was just this ancillary thing that had nothing to do whatsoever with what I was doing at work.

Carlos: Before we jump on giving people some ideas of how they can start. Let’s get them excited though. I mean if you can and I’m sure there’s many but, how has it changed your career? That’s a question and what benefits have you received from this right? You say you wouldn’t have done it but would you like knowing the benefits that you might have gotten from it. How has it benefited you outside of the day to day job? Give us a little bit of that upside of it.

Jeff: Yeah there’s definitely a couple things there. Number one, it’s just been personally gratifying to me. I personally like helping other people. It brings satisfaction to me when I know that I’m not only solving my own problem but I’m solving other people’s problems and I get that good feedback. Whether I do and work outside and it just happens to be that because the Angular Community is so big, when you are able to make a good contribution, you get a lot of great feedback. Like there is this just positive, really good feeling when you talk to people. That’s just like, more like makes me feel a bit personally right? But a little more substandard … Actually one more thing along those lines is it was pretty amazing at ng-Conf this year, which I think you, were at right Carlos?

Carlos: Yes I was there, I think we, and I didn’t see you or we didn’t cross paths. You guys were busy. You were doing a show there right?

Jeff: Yeah, we did a show, we had a tutorial, we had our talk, we had a whole bunch of stuff going on. That was imagined is that that ng-Conf this year was amazing and for me … I said earlier in this show that I wouldn’t have done it again but you’re right. I actually would have, part of it because during ng-Conf like just seeing not only with the feedback from our own stuff they were doing there, our own talk and tutorial and workshop or whatever but also like Brad for example.

Brad Green, the head of the Angular project during both of his keynotes, talked about the work that we were doing and talked about a lot the stuff that our contributions that just made my day. Like that made it like all worth it almost right? Because you can see that how someone you respect greatly, sort of shows his respect for what you’ve done. That’s just like there is nothing better in the world than that.

Carlos: I’m sure it becomes self-gratifying but at the same time it also pushes your curiosity forward … That much forward because you know that if somebody were to change, you know you don’t need to be worried about finding a job, putting it lightly.

Jeff: That’s true but that leads me to like two other things that have been benefits like actually within the work realm. From recruiting stand-point it does helps, no doubt. I do spend a lot of effort keeping close ties in the Boston community with developers here and even if I didn’t have my contributions, I think I would have good relationships with the local developers but it helps even more. It like puts it in another level because now when I go out to meet ups, go talk to other developers is that actual level of recognition. When I hire people it just makes things easier so like recruiting for sure, it helps.

The other aspect of that is I mentioned that I’m trying to raise money. When I go to raise money and I’m in these meetings with investors, one of the first things they do is kind of look up information on you because many of the VC Firms out there value the founders almost more than the idea itself. They’ll take a mediocre idea and great founders over the reverse any day of the week like over a great idea and mediocre founders.

They do their research into you and when they see that, I’m leading this open source projects that I’ve spoken at these different events about that project and that type of thing. That actually carries a lot of weight because they know that that will translate to not only shows your expertise that you can kind of deliver that work but the whole recruiting aspect if they know that for when they’re giving you lots of money, you need to hire a lot of people. If you have already shown kind of this ability to work with large groups of people and kind of bring other developers in that they can trust that you will do that with their money as well.

Carlos: Right, the leadership aspect of it that you are a thought leader and a respected person in the community.

Jeff: Yes.

Carlos: So you see there is tons of benefits. How can … Let’s say you are talking to somebody who is a senior level engineer working within … Lets make it very simple, somebody working, let’s say within a engineering team in a consultancy even, somebody who is not, who is not even working at Google because there is a few people that work at Google if there is hundreds or thousands or whatever but the majority of engineers in the world don’t work at Google right? Or the large companies. How do we get them started? What would you advise to a senior level who’s never contributed though, how can he start? What the first step?

Jeff: The first thing I think is not even necessarily contributing but just listening. Listening in my mind means, you know could be as simple as watching a certain GitHub issues on a project that you use at work or even better if you can get on like a Slack Channel where people are very active Slack Channel or Gitter channel where people are talking about the project that you use at work. You just kind of in the background or periodically kind of stay involved in that conversation. Just like very entry level, like you are just started opening the doors. Next level up is where, again, aren’t necessary even contributing code but you are starting to help other people, so you can help people without contributing code in all those different channels whether it’s Slack or Gitter or Github.

The maintainers of the project love, they love so much when somebody from the outside comes in and answers a question. Could be a simple question but if somebody else answers the question that like makes their day because a lot of times, I don’t know the percentage but maybe 50% of people that post questions or stuff that everybody, people who have been involved with no, but it just creates noise, it adds extra time, heartache in responding to them and like kind of working things out with that person et cetera.

If you can, like for that next level up just do a little bit of that that will get you more involved and it starts to get you noticed by everybody in the community like there is all sorts of benefits there. Then the next level above that is where you actually start contributing. Where you actually start pushing some coaching juice and this one is a bigger hump to get over, like mentally that is, because if you haven’t done it before, it seems like this big onerous thing, right? The only thing I would say to that is that, in almost all cases it’s not as hard as you think. If you just like force yourself almost like, “Okay I’m going to do this,” and just kind of force yourself to do it once or twice it just becomes a lot easier.

There are some exceptions like, if you wanted to contribute something to like Angular core to like critical piece, there are a lot of hoops you got to jump through? I wouldn’t see as that for first timers like trying to contribute that could be pretty intense but there is all sorts of stuff. Like let’s say when even with Angular Universal or like any project there is a ton of first timer issues and most of them … A lot of Git repositories will have a specific tag for first timers because they know that this is like an easy issue or something that someone can quickly churn out. Just do a couple of those, get familiar with it then you can go from there. That would be my sort of stepping stones towards getting involved in open source.

Conclusion

Carlos: This has been an awesome advice because I think yes there is some whatever barrier … It’s really good feedback because it could seem like a big hurdle to get towards feeling like a contributor. I think those early steps are definitely are important so that you can start getting that context. I have three last questions for you and they are more toward kind of your … Towards you basically. What advice would you give yourself if you met yourself say, 10 years ago or 15 years ago and you could tell yourself like one thing what would it be?

Jeff: I will tell you one thing that I have thought about but then, so I’m going to say this but just realized that like I always hesitate to think about this too far because at the end of the day, it’s like the butterfly effect. If you like think too much about what you will change then maybe some of the good stuff that happened since then would have changed like some of the … You always got to be careful, right? That said I would talk to my younger self and try to leverage a lot more the time period when I just graduated from college and I had a girlfriend at that time and we got married a couple of years after college but essentially in my mind, until you have kids, kids is like a pretty big jump in terms of life.

It changes how you think about things, it changes how you prioritize and it’s not that you can’t do things but once you start growing a family certain things become a lot harder. You have to do a lot more, when you own a house you have a big family and et cetera. I don’t think I appreciate it enough and I don’t think most people do when you are more unencumbered, when you are just either in college or right out of college, to try to do the types of things that will be a lot harder later.

That would be, you know starting companies, it would be travelling. I’m just speaking like two ends of the spectrum. There is, for starting companies there is huge time sync, there is huge stress thing evolved but most people starting companies are younger because it’s just hard to do when you are older. Like it’s hard to manage that when you have a family. Same thing with travelling the world, taking a month off to go all sorts of different places around the world. It always seems like you never have time for that but for sure you have less and less time to do that as you get older.

Carlos: Also the ability of taking those risks because now somebody else kind of depends on you so you can’t take those risks.

Jeff: Exactly, exactly.

Carlos: What will be, I was going to ask you for a book that you recommend, but it could be a book, it could be a resource based on these different subjects we talked today. Do you have anything we could recommend?

Jeff: There is a lot of books I like so one, I have many favorites but this is just one sort of foundational one and it’s an old one. There is, “Seven Habits of Highly Effective people.” I feel like a lot of these, these self-helpish type books, recycle a lot of the same content but for me I’ve always found that, that was one of the first ones of that sort of realm of books that I read back in college I think I read it first. It just changed a lot in the way I viewed the world and I go back and I reread that probably every couple of years and its classic but I find it extremely helpful and I would recommend it. If somebody hasn’t read it, they, you definitely should.

Carlos: All right. That’s a good recommendation. I have seen that book around my house since, I I don’t know since I have memory. My mom always had it and I will tell you the truth, I have not read it, so I’m going to follow on that advice. I’m not kidding when I was, maybe in my childhood, I remember seeing that book in our book shelves and I just never got around to it but I’m going to check it out. The last question Jeff is how can people find you and your work?

Jeff: The easiest thing to do is to find me on twitter @jeffwhelpley and go to our website gethuman.com You know between the two of those you can follow pretty much everything that I’m doing because I do tweet pretty regularly about what I’m doing both at work and in open source projects. Then when you do have any sort of any customer service problems, definitely come to GetHuman and we have free tools to either you can help yourself out or if you just don’t want to deal with it, you can pay us and we’ll deal with it for you.

Carlos: Well, Jeff, I want to thank you so much. I think this has been an amazing interview, getting the context of what you do and how you do it is very, very important for people that don’t have that exposure and don’t have that experience because it’s one thing to know it after the fact, like in your case or people who know you or that in similar situations but for those who are not there yet I think it’s a huge privilege to hear first-hand from you.

Jeff: Thank you Carlos I had a great time and we got to get you on AngularAir man.

Carlos: Hey, I would love to come on AngularAir. I know that my co-author of ng-Book is part of … Goes to AngularJS a lot, Ari Lerner

Jeff: Ari is a panelist, so let’s plan on maybe in September something like that. Can you guys learn to talk about ng-Book?

Carlos: Oh I’d love to. I’d love to be on your show. Jeff once again, thank you so, so much and I hope to see you soon.

August 19, 2016 / Comments Off on The Evolution of Technology at NASA with James McClellan

Today, I’m honored to have James McClellan on the show. James is part of the technology leadership ecosystem at NASA as a Technology Infusion Manager.

Today we discuss what NASA is, his role and the roles of the different CTOs at NASA, security concerns, the Internet of Things, evolving processes and methodologies at NASA and the influence that NASA hopes to have over future generations of scientists, engineering and developers.

We are extremely pleased to have James with us this week.

Topics we discuss:

1. What is NASA?
2. Role of the different CTOs at NASA
3. James’s Role at NASA
4. Security rules and regulations at NASA
5. Security Concerns with the Internet of Things
6. Evolving Processes and Methodologies at NASA
7. NASA’s Influence

Show Transcript

Carlos: All right. James, tell me a little bit about yourself. How did you end up working at NASA?

James: Well, part of the reason that I ended up working here is that I live in Houston. I had worked in industry. In fact, still most of my career, two-thirds of it is in industry. There happened to be some openings at NASA. I came and applied and actually starting working for a contractor first, did a really good job. That led to an opportunity to become a civil servant where I became the first Chief Technology Officer in the IT department at the Johnson Space Center.

Then from there, I’ve now moved to an agency-level headquarters position, although I still am living at Johnson Space Center because I run an innovation lab and there is really no room for innovation labs at headquarters. It’s where most of our top-level leaders are. I need some space. I need access to scientists and engineers, so we run the innovation lab out of the Johnson Space Center for the agency.

What is NASA?

Carlos: That’s awesome. All right, so I know that there is a lot of people who think that NASA is only space exploration, which I know is a big part of it, but in broad terms, can you define what NASA is and what’s the mission of NASA?

James: The actual mission statement of NASA, it calls for us to pioneer the future in space exploration, scientific discovery and aeronautics research. We’re mixed up in a lot of different things. Obviously, space is a big part of it. We had that tremendous success with Juno just this week. We’re making great progress on our next-generation human spacecraft, which is Orion. Unfortunately, a lot of people think NASA went out of business when we ended the space shuttle program, but nothing could be further from the truth.

We’re getting ready to really go out beyond the bounds of low-earth orbit with our new spacecraft and explore asteroids and Mars. That’s really exciting, but NASA has always had a fundamental … Even before it was NASA, it was NACA where we were doing aeronautics research. There is a tremendous amount of just commercial airline involvement and great innovations that have come from NASA over the years that make airline travel faster, safer and cheaper.

Carlos: That’s great, but just to get an idea of let’s put it into perspective, meaning when we talk, we think of NASA. We have to really think of all the scientists that could be spread around the world who have different needs. Those different needs basically, are channeled somewhat through technology.

James: Sure. Well, for instance, we have a tremendous amount of scientists also working on earth science. In addition to our space probes, a lot of the stuff that you see on earth science, global warming, those kinds of things, are fundamental research that we’ve done at NASA. We have a tremendous amount of partners in academia as well as in other commercial ventures.

Carlos: Great, great, I want to know. I’m just going to ask you a few questions that I think might be interesting for our listeners. How is it to work within NASA and work with different business units in terms of prioritizing, let’s say, new programs? I’m going back to that engineer or that scientist or group of scientists that are working on a given project. How does a given program or a given project come from the need of the scientists all the way to people in leadership to actually execute them? How does that flow work?

James: NASA is actually a pretty complicated organization. We have a variety of different missions that we’re on. As I just got through mentioning, we’ve got the human space exploration. We’ve got the science mission. We’ve got aeronautics. There is a lot of different research branches and development branches in each one of them. We’ve got the commercial space exploration branch. That’s SpaceX and some of our other partners are involved in. Each and every one of those different programs sets out what its priorities and missions are.

Then we just take it from there pretty much like you would in a corporate America environment where you’ve got your leadership teams in each one of those different groups setting what the goals are for that particular operating unit. Then it just goes on down the path through all of the scientists, the engineers, the operational people. They determine what the tasks are, and what we get to their job and we get after it.

Role of the different CTOs at NASA

Carlos: It’s interesting as you’re comparing it to corporate America. In corporate America, we’re used to thinking of a single CTO scenario. From what I understand, that’s not how it works at NASA. You guys have different CTOs. Can you explain a little bit of how that works?

James: Yeah, I can. We do have one administrator, which is Mr. Bowman. Of course, he runs the entire agency. He’s responsible to the President and to Congress. The different business units, if you would, within NASA are the various different centers. Over the fifty-something-year history of NASA, those different centers had very distinct jobs. Johnson Space Center was originally named the Manned Space Flight Center. Later on, it was named after President Johnson. Obviously, the primary function here is manned space flight.

The Goddard Space Flight Center is a science-designated center. Each one at Marshall, they have a lot of tasks, but they’re primarily working on the rocket systems there. Dr. (Wernher) von Braun was there during the development stages of early stages of NASA. They’re working on our latest rocket, which is the biggest rocket ever, which is a space launch system, bigger than Apollo 5 there.

Each one of the centers has its own unique characteristics. In the past, they were even somewhat autonomous with each other. Now, I think we’re coming more and more towards having more of a one-NASA kind of an environment, but there’s still a lot of individual things that go on at each one of those individual centers. That’s in a way like different operating units within the corporation would be a way to think about that.

James’s Role at NASA

Carlos: James, one of the things that I wanted to get into a little bit more in-depth, understanding your particular role at NASA, what is it that you do within the organization? What’s your main mission within NASA?

James: What my particular job is as the technology infusion manager is I work for the agency CTO for IT, Deborah Diaz. She reports directly to the agency CIO. Within her division, she has several different branches, one of which is the technology infusion branch, which is in essence, the CTO community. As I was mentioning earlier, each one of the centers has in the past been somewhat autonomous and so each one of the centers currently has a CIO. Each one of those CIOs has their own CTO.

In essence, what my job for Deborah is, is to run the CTO community. I’m also in charge of agency-level innovation projects. We have something that we call the T&I, which is our division Technology and Innovation division, the T&I labs where we run an annual innovation challenge, where we have an open challenge for people to bring in new ideas. We award opportunities for them to go out and explore new ideas that aren’t related to, as I mentioned, everybody has got their job.

A lot of times, people come up with great, new ideas, but because they have deadlines and jobs to do, they don’t get to explore them. Our technology challenge that we have each year allows people to bring those new ideas so that we don’t lose them and they fall through the cracks. Then finally, our group is also responsible for the strategic vision for IT for NASA. We bring that forward. It goes together with the enterprise architect’s information and that from the production side of our houses and ultimately, culminates in the strategic plan for NASA IT.

Carlos: Out of those innovation, out of those moments, have any cool projects come out?

James: Oh yeah.

Carlos: I think you mentioned once NASA Tube was one of them. Is that something that we can talk about?

James: NASA Tube is a project that I’m working on right now. It’s exactly what it sounds like. It’s a version of YouTube but only for the internal components of NASA. That was actually something that originally started at our JPL center. We decided to bring it up to the agency level. What that allows us to do there is certain things in the federal government that we have to do on security and other requirements that corporate America doesn’t have to have.

A good example is our Section 508 requirements that we have. If we post a video, we need to make sure that that video is available to all of the people in NASA, including those that may have hearing or sight challenges. We need to make sure that our video has closed captions on them. What this product, it’s actually a Microsoft product. It allows you to submit a video. Then it generates a closed caption and searchable text behind it. Also that searchable text is editable. The great thing about it is it does that in about twice the time of what the video. If you’ve got a thirty-minute video, it cranks through all that in an hour.

Carlos: Wow.

James: Previously, if we were doing it the old-fashioned way, we would have to send that video out and it would have to be professionally transcribed with closed captions. It took a lot longer. It was a lot more expensive and that limited our ability to do that. With NASA Tube, anybody can whip out their iPhone. The new iPhones have 4K capability on them. They can do a video and then submit it. This gives us a lot more flexibility instead of just we’ll still be able to do or let our professional videographers do their jobs for the professional quality videos, but it’s going to let a scientist or an engineer be able to do something.

If they’re cranking something out in the lab and they want to show their cohorts what they’re doing, hey, they could take a picture of it. A picture is worth a thousand words, throw that up and share it across the NASA centers with whoever it is that they want to share it with. They can either choose to restrict it to certain individuals or they can just publish it out there for all to see. It’s fast. It’s cheap and it works great.

Security rules and regulations at NASA

Carlos: Actually, this is a good segue into my next question. Before I go to that, is that product based off a need, for example, that they can’t use, like they can’t take a picture and send it through email or let’s say, I want to send it through something that is not secure, some open method of internet communication. Is that something that you guys were worried about, so therefore, we need to have a product internally that does it?

James: Well, yeah, I think in a way it’s related to that. I think one of the things that you might be hinting around on that is a particular problem for the federal government security wise is we have a lot of security rules and regulations that we need to comply with. It’s just part of the territory. If you’re working in the federal government, you need to comply with these laws and rules. As we all know, there is a tremendous amount of new capability and that we’re certainly in a new world in the twenty-first century computing cycle here from what was previously the traditional IT world.

We’ve got all kinds of new tools out there. A lot of people want to be able to use those tools, but we cannot have NASA data out on these consumer versions of toolkits because it’s not secure enough. We’ve got laws and regulations that say that we can’t put our data out into those areas. What we do as CTOs is I mentioned that we work on these emerging technology and stuff. That’s one of the pillars of the CTO community. The other pillar is that basically, we’re the chief customer advocates for our customers in trying to make sure that they have the tools and things that they need to do.

If they see a consumer tool that really works for them, for example, Google Apps is just one example. What we did is we went out and we got Google Apps and Google was interested in being able to serve this community. They got a fed wrap certification for their environment through GSA. At the first of the year, we were able to add Google Apps as a service for inside use in NASA. That will allow us to put our NASA data into a Google-for-work environment.

Carlos: Wow.

James: Those are the kind of things. We have some restrictions that we have to work around because we need to make sure that our data is safe. Sometimes, that means that we can’t be at the bleeding edge of some of those new technologies because we need to wait and make sure that the security is in place first. That doesn’t stop the CTOs from going out and looking at it, but we need to make sure by the time we bring it into production, that it’s in compliance with all the rules and regulations that we need to comply with.

Security Concerns with The Internet of Things

Carlos: One of the things that I think we discussed earlier or in a previous conversation was about this in the Internet of Things type of things and how security plays a big role. Maybe I’m using the term Internet of Things in the wrong way, but I’m referring to things like e-cigarettes or picture frames that you just plug into your computer for a recharge. Those could pose a security threat to you guys.

James: Yeah, they certainly can. As a matter of fact, I lead the Internet of Things team that we’re running our investigations on. We’ve been going on that for, oh gosh, about eighteen months now with a formal process. People say a lot of things about the Internet of Things. I think the hype cycle is at its peak right now on it. It’s just white hot. It is going to be the second digital revolution out there. There is no question about it. We just got a report from Ericsson this morning saying that within the next two years, there is going to be more Internet of Things objects than there is telephones.

It’s going to be huge. Everything is going to be connected. Some of the things that you just got through mentioning, unfortunately, it also means that there is a huge increase in the attack vector from a security perspective. I happen to also be a CISSP on my security rating. These Internet of Things, it’s kind of a double-edged sword. They’re going to offer a tremendous number of benefits and value to us. At the same time, there is a lot of security challenges especially in these early days.

When we started last year, we were kind of in the Wild, Wild West. Our initial investigation was just what the heck is the Internet of Thing out there? We were seeing over fifty different protocols. It was early days. Every company was out there trying to create proprietary protocols and capture a market share. What we’re seeing now is this is one the fastest evolving technologies ever. We can already see that there is some consolidation going on. I recently took an MIT course on IoT.

That was one of the things that was reinforced there from that environment as is that we, as the consumers of IoT need to start pushing these companies towards standards so that we can one, avoid having such a soup mix of proprietary solutions out there, and two get some more security in there so that we can use these things in the government and commercial workspaces where we won’t tolerate some of the things that may be tolerated in a consumer environment. Although, we have already seen some cases where there is some smart TVs out there where the vendor was actually kind of snooping on people with those smart TVs.

We’ve seen that there is some malware in some of these devices where the chargers are associated with a USB. You plug them into your computer and guess what. They upload malware onto your computer. We really need to be careful with these things, especially in our commercial and government areas. We’ve come to the conclusion already in our investigation that we’re going to have to re-architect our networks.

Nothing short of that is going to be able to enable us to take advantage of this because the way that we’re currently configured, we’re simply not going to be able to just plug IoT devices in on our networks. There is too much of a security risk for that. We’re going to have to create particular segmented networks for these devices to live in that are a lower-trust environment than where we’re living with our other trusted environment, trusted devices on our networks.

Evolving Processes and Methodologies at NASA

Carlos: As you’re aware, there is all these sorts of different methodologies as to let’s say, executing projects. I’m really curious because we do a lot of agile work when it comes to building web applications and that sort of thing. Is there some sense of evolution in that sort of thinking at NASA or is it a very strict waterfall type of way to? I’m just going back even to this issue with IOT devices. Is it looked at in an agile way or is it looked at in a very waterfall way? Does that apply to all software projects?

James: Well, I think NASA is in the process right now probably like a lot of commercial companies in transitioning from that old, traditional IT model into the twenty-first century computing models we’ve got out there. We already have teams that are using agile processes, but it’s not all of our teams, yet. I know there is an effort underway right now to go out and look at all the different programming languages that we’re using and basically rack and stack them and say, “Okay, here’s the old ones, the obsolete ones. We don’t want to use these anymore. Cease and desist. Here’s the new ones that we want to invest in and this is the path that we want to do our forward programming environments in.”

Then there is some out there that we may need to maintain for a while for purposes, but maybe not do anymore development in those areas. We’re tackling that whole thing. One of the things that we’ve got put into our strategic vision right now is a lot more work on APIs and on micro-services out there. We think that there’s a lot of benefits to that in a couple of different ways.

One, it can allow us to even on some of our older programs, we can get some API calls in there where we may not have to rewrite some of those legacy programs, yet still get access to the data that’s in them. Then some of our newer programs just build them from the ground up. Our strategic vision points to a place where we’re trying to move our applications to the edge of our network to make those calls on restful and responsive calls out to our programs so that we can use the latest techniques for our new environment.

Carlos: It’s refreshing to hear that you guys, that NASA is really moving in that direction. I always thought of whenever I was explaining things like benefits of waterfall, I would always say. I would point to NASA in a good way, by the way, as an example. Here is why you use waterfall. If you’re building a rocket ship, you don’t do that in an agile way because agile means let’s test and fail, test and fail, test and fail, test and fail. In reality, if you think about it in a broad term or zoom out, in the end, there is some agile way of thinking when it come even to that because they have prototypes and they test and fail. There is that, a little bit of that loop of learning.

James: Part of that, too, Carlos, depends on what specific area you’re talking about. When you get over into the mission areas, and there is some things that we’ve got going out there that may be decades old, those programs that are mission critical, life and death kinds of things. Our space station has been up there for decades, now. Believe me, that code was double, triple, quadruple checked before it was ever put into use.

Those are areas where that may be some legacy code that lives on for quite some time. Over in the office automation side of the house, the more IT side of the house, that gives us the opportunity where it’s not a life or death situation and where we may be able to capitalize on the latest trends in programming much more quickly than we could in a mission area.

NASA’s Influence

Carlos: Well, James, I think all this is really interesting. To me, whenever I think of what would I, if I could just handpick a place to work, for me, NASA is one of those places I’d aspire to work and actually, it leads me to my last area of the discussion. I think I didn’t prepare you for this one because it just came to me as an idea. Don’t you think that NASA overall builds like … People like in our industry, I grew up. I was not part of the era of space exploration. I was born in the ‘80s, mid ‘80s. It was past that, but I still had a little bit of that post-space-exploration era or beginning of post-exploration era where everybody would look at space exploration as a way to be motivated by I guess by it. Also you want to become an engineer because of that.

It was definitely something that happened to me as I was growing up. Being an engineer meant think I was closer to that idea, to that movie idea of what NASA is. I just want to get your feel of how do you think NASA should or how do you think … Maybe it’s an opinion about overall how could NASA continue to inspire the newer generations to become engineers, to become scientists, to want to work for NASA? As I said, it did for me, in a way. I couldn’t imagine, basically, working at a cooler place, if you would, than NASA.

James: Well, I will brag a little bit. I think NASA for the last several years has been chosen as the best place in the federal government to work. Believe me. When you go on tours and you go back in these labs and you see things like Robonaut, and these spacecraft, or you go over to Goddard and you see those, walk up to that clean room where they’re building these deep-space probes, it’s really inspiring stuff. I’ve had the opportunity to be on some of the teams evaluating not just IT projects, but over in our chief technologist area where we’re talking about what I call the hard sciences, the real engineering and science stuff.

They have just an amazing amount of just mind-blowing stuff going on. If you want to see some of the stuff that NASA is actually doing, we’re not allowed to promote ourselves by law, but go to the NASA website and check out Spinoffs. Every year, we publish a list of all of the technology spinoffs. You would be absolutely amazed if NASA hadn’t existed, how many things would not be in this world. It’s just absolutely amazing what these folks crack, put out, and just come up with tremendous innovations across the board through every kind of stuff you’d never think was coming out of NASA. It is.

Carlos: In a way, to me, the space age set the basis for the world that we live today. Would you agree with that?

James: Well, there is certainly a tremendous, integrated circuits all the way down to Velcro. There is a tremendous amount of stuff that we’ve done. We’re not done yet. We’re just getting started. If you’re enough of a nerd to watch the Science Channel or anything, you can just go look at that. We’ve got almost a renaissance here. We’re about to get off this planet and really go out and explore further than we’ve ever gone before. We’ve got another huge project coming up. The James Webb space telescope is going to be coming up here in the not-too-distant future.

If you know how Hubble has basically changed our understanding of man’s place in the universe, we think that the James Webb telescope is going to be just that next leap forward. Carlos, I have in my room. I have a picture of the ultra-deep field. If you don’t know what that is, the manager of the Hubble space telescope project had more time than anybody else had on the space telescope. He couldn’t figure out what he wanted to do with it.

What they did was they pointed it at this one, little, tiny, pinprick-sized part that was the darkest part of the sky. They let it sit there and run. The amazing thing was in this one, little, bitty, tiny speck of the sky when they did that time lapse what came up was six thousand galaxies in that one, little, bitty, tiny, pinprick. There is just an unbelievable amount of stuff out there and we’re just getting started.

Carlos: The big part is how sometimes it’s so big that our brain cannot even process that amount of information. It’s one of those things that if you sit down, I know we’re going away from our initial conversation, but just I’m one of those that sits down and looks to the sky and think oh my God. I get overwhelmed, of course. In half a second, I get overwhelmed to think of the it. Again, and all those things that you said like I am looking at one pixel and there is more billions, more galaxies than I can count in that pixel or literally something like that.

James, I want to thank you. This has been an amazing interview. Thank you so, so much. Once again, it’s been an honor to have you on the show. I think you were able to give us a little bit of an insight in broad strokes of what it is to work at NASA, what is the reason for NASA in terms of technology and so the technology reasons that for NASA to put it in simple terms. Once again, thank you so much.

Conclusion

Carlos: Now, I do have three last questions. There are three. They’re not necessarily NASA specifically, but people out there might be thinking this guy has so much experience. He is working at NASA, all this stuff. What would be a piece of advice you would give to somebody who was, let’s say, getting into college, thinking of a career and they were listening to this thing? They’re like, “I want to go work at NASA.” What should they be thinking? What does their future need to look like for them to even apply at NASA?

James: Well, that depends on whether you want to work for one of our contractors or try to become a civil servant. There is actually, intern programs that you can get into if you’re interested in becoming a civil servant for NASA. I would recommend that you look at getting into that co-op program. That gives you an opportunity to actually, come onboard as a civil servant. You need to do that fairly early in your college career if you want to get into the co-op program.

Otherwise, what a lot of people don’t recognize is that the majority of the work that’s done at NASA is actually done by contractors like Lockheed Martin and Boeing and SpaceX. We’ve got a bunch of other partners out there. I can’t begin to name them all. That’s another different way that you can work for NASA. We love are contractors. They pull their weight. Obviously, it’s a science and technology kind of an environment. That STEM education, that is where you need to be if you want to try to come and work at NASA.

Carlos: James, the other question that we always ask our guests is what book would you recommend on some of these subjects we discussed today?

James: Well, Carlos, one of the things that I discovered pretty early in my career was if I simply read the manual I was ahead of about ninety-nine percent of the people out there. You would be amazed how few people actually just read the manual and try to understand how something actually works, especially if you’re young in your career and you’re starting out in a technical position and you’re learning to do something. That’s really what my recommendation would be. Don’t try to click your way through something. Go read the manual. Understand how the technology actually works. Then you’ll be the stud duck.

Carlos: That’s great advice because I, for example, I am one of those that sometimes, does not read a manual. Then I’m like, “Okay, am I missing something here?” If you go back and spend the time, you’ll be far, far better off.

James: It worked great for me.

Carlos: All right, James, thank you so much.

James: You’re welcome.

Carlos: All right, James, and how can people find you? Let’s say they want to tweet at you or anything like that. Are you on Twitter?

James: Yeah, well, I’m in all of those places. I’m on LinkedIn. I’m on Facebook. I have to say that I do have a Twitter account, but I don’t use it that much anymore. If they need to get in contact with me, they can do that or they can just email at J************@NASA.gov.

Carlos: Wow, well, it’s a big one. You shared your email. We will not share that email on the show notes because it’s a private email, but you can listen to the show and you’ve got James’ email right there. We will link to your Twitter link. I just found it. Just in case people want to follow you or anything or send you a message, in case they want to get in touch. James, thank you so, so much. Once again, this has been amazing. Thank you so much for coming on the show.

Show Transcript

Carlos: Thank you for tuning to Tech People, where real-life tech practitioners share their professional experiences. Hello and welcome to another episode of Tech People. Today, we have Jen Looper from Telerik on the show. Jen is a developer advocate and she’s joining us to help us understand a little bit more about what a developer advocate does for an organization. So without further ado, please welcome Jen. So Jen, thank you so much for joining us. How are you doing today?

Carlos: Oh, no, it’s my honor to have you. I’m really excited about the work that you are doing at Telerik, and basically all the work that Telerik is doing for the angular community overall. I think you’re going to add a lot of perspective to a lot of the people who may be wondering, what is Telerik, all the work they have … You’re probably known more for the product names that you guys have, but also, for your role overall, because your role seems to be kind of mystified still, it’s a new role in the last couple of years. Having a few people that are basically excelling at this role, such as yourself, is going to add a lot of perspective, for a better word. Anyways, thank you so much for coming on the show.

Jen: Thanks. It’s really, really fun. We’ll have a nice chat.

Jen’s background.

Carlos: Awesome. All right, so tell me a little bit about yourself and how did you get into tech?

Jen: That’s a great question, because I have this kind of bizarre and esoteric background. Although, the more people I talk to, the more I realize that, especially people without computer science degrees, a lot of them have, actually, really esoteric backgrounds. Mine is actually, I was absolutely sure ever since I was 16 and went to France the first time, that I would become a professor of French. The plan was, get your degree, get your masters, get your PhD and then jump right into the academic job market and get a tenure track job. It’s a beautiful dream. It would’ve been nice if it would’ve happened that way.

What actually happened was, I did go through and I did get my PhD and then the bottom fell out of the academic job market. It was almost like they discovered adjuncting right when I got on the market. An adjunct professor is someone who is basically shifting from school to school with no benefits. Basically, I was paid 1500 bucks a semester to teach French every day, and that wasn’t really covering my childcare costs at that time, so I thought, “This is a little crazy.”

Carlos: It’s a little apparent … Would you take adult students to learn French? Hint.

Jen: I’d have to brush up, but I could possibly, yes. Actually, a cheap way to do it is to hop on Skype and find a French speaker to talk to.

Carlos: There you go.

Jen: Yeah.

Carlos: All right, sorry, I interrupted you. I just had to catch on because it’s really interesting. From that jump from, again, wanting to follow that dream of becoming a professor, what made you think … Of course, we’re going to get to how you even got to Telerik. How did tech become an option?

Jen: Yeah. Right at that time, when I finished my degree, which was in about, let’s see, 98, I finished my PhD in 98 at Cal-Berkeley. That was the tail end of the dot com boom. I had had friends drop out of grad school and go straight to Yahoo! Scandinavia, for example. My friend from the Scandinavian program at Cal-Berkeley, he jumped feet first into tech because it was a huge thing in San Francisco at the time, certainly it still is. I just caught the tail end of it in Boston and jumped into a small startup called Closing Counsel dot com. I thought, “Maybe I can do graphic design.” I’m pretty good at drawing things, get some software, Photoshop, learn Illustrator, learn Fire Works, learn Photoshop, and maybe I can become a graphic designer. That’s kind of artsy, a humanities kind of thing.

It turns out I’m not that great at graphic design, actually. I started getting more and more into the code aspect of it. That startup shut down and so did most of the dot coms, so I jumped into a nonprofit at that point. That’s where I learned, actually Cold Fusion. My introduction into tech and into actual programming was Cold Fusion. I’m sure some people are, the hairs on their arms is raising up talking about Cold Fusion. It paid the bills for a lot of years for me. All the love to Adobe and their software.

It was just working my way up for 14, 15 years from, let’s see, from startup, to nonprofit, to medium sized company, to big corporate, Sun Life Financial, as a programmer analyst there. Then, a smaller company, tiny company, and then Telerik. It’s been 5 or 6 jobs. It’s been quite a wild ride and a really interesting one. I learned a lot about myself in the process and this field, in the process. It’s been really interesting and fun.

Carlos: It’s interesting. Somebody who didn’t have a computer science background, basically started … The reason I say it like that is because people need to know out there, that you can become an engineer, you can come into the tech world without having that CS degree.

Jen: Oh, yeah. It’s a big question now, “Do you have to?” Maybe times have changed now. Maybe things are a little less flexible and people are expecting more? In which case, my niece got out of creative writing, she majored in creative writing, and went to a boot camp and now she’s doing data science. Maybe that’s the path that people would take in modern times.

Carlos: It certainly is an option. In fact, I’m going to tell you a story just because we’re touching on the subject. Last year, I want to say in October, I had to run an errand very early in the morning and I just called an Uber, it was maybe 4 in the morning, 5 in the morning. I didn’t want to drive and I didn’t want my wife to drive either, so anyways, I just took an Uber. As I started talking to the guy, he starts asking me a little bit about what I do. We started having a conversation over it all. He’s talking to me about what he’s doing in his life, just a little bit of that catharsis.

He says, “Well, I am studying to take my real estate license test.” Which, okay, that’s pretty cool. I asked him, “Do you like that? Is that something you have a background with?” No, he says, “I have a background in computers, I used to do a little bit of networking here, or also, fix computers and so forth. I can’t find anything in that area and they’re not paying well.” Et cetera. My recommendation was, “Well, there’s this place called, it’s this local boot camp essentially, called Iron Hack and I’m friends with the owner. Why don’t you go there?” This is an unknown guy, somebody I just met at 4 in the morning.

It was an off-the-cuff type of recommendation. Maybe 2 and half months later I’m having lunch with the owner of the boot camp and he’s like, “Come on over to the office.” We were out having lunch somewhere outside and he’s like, “Come into the office, I want to show you our new space. I have a surprise for you.” As I go in there, we’re talking, and then he’s like, “Here’s the surprise.” This kid comes out and it turns out he enrolled in the program and he became an engineer. Now he’s working, I think he’s working at AT&T or something like that, local here in Miami.

I think boot camps are not for everybody, you can’t just expect the boot camp to train you into an engineer, a deep, time will do that. The time, and training, and experience. It will definitely give you enough basics for you to start working, for you to become functional, even if you’re doing very early type of stage work, and very junior work. That’s how you work your way up. Anyways, back to you.

Jen: Never be afraid to, if you have to step down to become junior, and you have to retrain, just put your pride in your pocket because you’re just going to have to do that for a little while. It’ll get better. You’ll mature and you’ll learn. As long as you’re willing to learn, that’s really the secret of life, I think, keep learning.

Carlos: It is. Sometimes, also, it’s more than just the secret, it’s also part of the enjoyment of life. What is life without, at least to me, life without learning and wanting to … I’m always reading something or trying to expand my, just become a better person overall.

Jen: Evolve. Mm-hmm (affirmative).

Carlos: Right, you’re just a Kardashian. Kidding. I need to be politically correct. All right, so tell me a little bit, Telerik, we know you’re a developer advocate, but what does that mean? How do you translate it, in generic terms? Then we’ll specify what it means to be a developer advocate at Telerik. What is a developer advocate in general terms?

What is Telerik?

Jen: Sure. Probably, I should backup and say a couple of things. One is that Telerik was actually acquired by Progress Software so I’m technically an employee of Progress. Telerik is a very well known brand name, so we can use them interchangeably, that’s totally fine. Telerik is famous for developing, what I like to just say is, that we are famous for developing tools that help make developer’s lives easier. Instead of having to write your own grid with all of the interesting little tweaks, and sorting, and filtering, and date parsing capabilities, we have such a thing for you, ready to use within your app. You can use that depending on what flavor of web technology you choose.

We have large and extended product lines that will help developers get where they need to go, faster. That’s what we’re trying to do. Our product, NativeScript, which is our newest product, it really is all about making cross platform mobile apps as performant, and as easy to build as possible.

What is a Developer Advocate?

My job, as a develop advocate, is to explain, I’m like how Lucy has to explain things, I’m always explaining myself. We explain our technologies to developers in ways that will help them understand whether or not they would be helped by our products or not.

If not, that’s totally cool. If so, I can help integrate them, or help with finding quirks, get feedback, send the feedback back to engineering. A developer advocate is a liaison between the product marketing people, the engineering folks …

Jen: Yeah, yeah. The larger development community. They might be working at, for example, at Sun Life, and they might need to create a website that has beautiful charting and beautiful grids, in which case they might turn to Kendo UI. I can help them make the decisions that will help them the most. You know how we’re not supposed to be always closing? We’re always supposed to be helping. That’s what we’re trying to do.

Carlos: Understood. It’s interesting, there’s a lot of a marketing support role, if you would, from a developer point of view.

Jen: Mm-hmm (affirmative).

Carlos: It’s also in the sales, I say say sales in a very general term. It’s a little bit of that support. Does it impact, or does it interface, to be an advocate for internal engineers or internal engineers, or is it more, you know how you have a product consumer advocate? Is it more of that role, consumer advocate versus … When I hear developer advocacy I’m thinking of the engineers of a company.

Jen: Yeah, yeah. It’s definitely talking to the engineers within a company. Of course it’s also sending those people’s feedback to our internal engineers, so it’s like a whole dialog between engineers that we’re facilitating. I guess you have to remember that developers are highly suspicious people and they don’t like to have marketing pushed at their face, and they don’t love to watch ads, they all have ad blockers anyways. They’re just a very savvy and suspicious group of people and they really don’t want to be sold a bill of goods and they don’t want to be marketed to.

A developer advocate is a person who can provide some authenticity around this discussion, what products might help them. Understanding that we have to, we try to avoid the word shill, we try to explain various solutions that might work better. While understanding, yeah we have to pay the bills and maybe or maybe not our solution might be the one that will help you the most.

Carlos: Got you. What is your favorite thing about your role? I’m using Telerik as the name, but also Progress. What’s your favorite thing about working there?

Jen: Yeah. Actually, I’ve always said this is … I worked as a programmer for 15 years. This is really my favorite job. I was recruited into it by a friend, I had never even really considered doing it, but I was a little bit burned out as a programmer. This has really been a couple of years of fresh air for me because I get to get out, go to conferences, meet people, talk to people. I get to travel, and I get to write, and I get to build demos, and I don’t have to be opening and closing tickets 24, 7. It’s a very freedom, a little bit of freedom for me that I really appreciate. It’s really, really nice.

Carlos: That’s very cool. Do you think your background, and that, let’s call it, a little bit of more general knowledge that you have of the world than say somebody who only studied computer science, who’s just, again, opening and closing tickets. I don’t mean to diminish them in a way but computer scientists, that is your role.

Jen: That’s a big role.

Carlos: That’s what they love, right?

Jen: Fix the things that are busted. That’s, of course, a wonderful and valuable role for sure.

Carlos: Do you think that your experience in, let’s say, what you went to school for, has it helped? Has it been somewhat strengthening of your profile for your role?

Jen: Yeah. I think a couple of things come to mind. One is that I’ve always said that syntax is syntax and whether it’s JavaScript of thirteenth century French, which was my specialty, if you are willing to learn a language, then this a plus in computer science. It’s just another language and we can do it. The other thing is that I have a lot of classroom teaching experience so that might help a little bit in getting a nice slide deck together and expressing ideas, and writing a syllabus, or putting a webinar together. I think that has helped a little bit too. Then, just getting up in front of a crowd of somewhat hostile people and speaking, or people with some hostility and trying to get them excited about something that might be useful to them.

Carlos: Every time I get up on stage, their little Apple logo is my enemy because …

Jen: Close that thing and sit up and listen.

Carlos: Yeah. When you see a little Apple logo light up you’re like, “I’m done.” Once you start seeing them shut down you’re like, the more you start seeing it, they’re not paying attention to you. It’s interesting how that humanities training, being able to give a speech, to teach, teaching is a skill, it’s a skill. You can’t just become a teacher over-night. Me knowing how to do something doesn’t mean I know how to teach that thing.

Jen: Yeah. I think the most effective developers that I know, actually, who are working in this kind of evangelistic role, they don’t actually have computer science degrees. I have people on my team, let’s see, we’ve got a communications major, history, French, I think Todd Motto has an art background. Also some of NativeScript develop experts, we have a musician, he’s quite good actually, all kinds of people with all kinds of interesting, really different backgrounds. A lot of self-taught folks out there who are really, really skilled.

What is the measure of success for a developer advocate?

Carlos: One thing of interest to me is how do you know whether you’re doing a good job? What’s the measure of success of someone in your role?

Jen: That is a very, very difficult and fraught question because this is a lot of time, when a company will be a little crunched for budget, they’ll look at that dev role team and they’re like, “What are you guys doing?” It’s hard to measure. What we do is that we actually count, what we call, wins. A win might be, for example, I run the Telerik develop expert program so I’m counting my wins, piggybacking on their wins because when one of my people writes a blog post talking about our products, then that’s extended the reach of dev role. If someone’s done a webinar, or if we complete a nice webinar and we have a whole of bunch of people watching it, that’s a win.

Every month we make a list of all of our wins and pass it up the chain. Hopefully, they’ll agree that they are valuable and useful. It’s a little hard to quantify because you can’t put real goals against it. You can a little bit, but not too much. You can’t really put a monetary value, a lot of times, because even if we have a lead come through, we’re going to pass it straight to sales engineering and they’re going to make the deal.

Carlos: Right. A true leader will recognize activities and how certain activities yield certain results. You are creating those activities. Maybe let’s say, for example, and I would hope that this podcast is a win for you because …

Jen: It is, actually, it goes on my list.

Carlos: There you go. We’re expecting this to go out to 32,000 people listening to this show. Hopefully it’s a win, hopefully. Again, it’s interesting because, for example, and I’m just going to translate what you’re saying into how I’m experiencing it as we speak. We, in my company, in fact, I am actually, I’m guessing that I’m the developer advocate at this stage. For example, I’m working with some of the folks from our engineering team to give us 2 articles per month each, so that it’s somewhat of the same thing, we need to create content for our authority and all of this stuff, the reasons that you write articles. At the same time, they need to be genuine. They can’t have a marketing goal only. It has to have a real goal of teaching somebody how to get from point A to point B.

Even though I’m an engineer and I can write those articles, I don’t have the bandwidth. I need help from other folks in our company to help us do that. Is that some of, am I doing a little bit of an engineer developer advocacy by …

Jen: Yeah, absolutely. By doing anything that’s customer facing and something that might be … Even if your customer is your larger company. Absolutely. You’re totally being an advocate. Actually, the most beautiful piece of develop advocacy I saw recently was done by the Auth0 people, I don’t know if it’s Auth O or Auth Zero. They have this platform for managing the security and the sign-ins of your app. Right when Pokemon Go came out with the security flaw, they were gathering a whole bunch more data than they needed to apparently, someone on their dev role team wrote this beautiful article saying, “Here are the problems, here’s what you need to do, here’s what to watch out for. By the way we have a solution.” It was at the bottom, it’s like, “Check out Auth0 for a great way to manage your own app security.”

It was just really nicely done, I thought. It doesn’t have to be shilling all of the time. You can explain, in a very concrete fashion, in a very timely fashion, how something that you are building helps solve a problem.

Carlos: Right. That’s interesting. How many million people are playing that game now and are probably search for that thing? It was right at the opportune moment …

Jen: It was beautiful.

Carlos: Wow. By the way, just as a parenthesis, that Pokemon Go thing caught me by surprise. I found out maybe a day later and I still haven’t played it. I don’t think I will play it. What are your thoughts on that?

Jen: Yeah. We recently had a Slack chat actually, trying to put some parameters around it. My take is that, I think it’s an amazing convergence of brand nostalgia and tech, with that augmented reality aspect of it. I would love to see other apps use this kind of new combo. Our conversation on Slack was with some of my develop experts, was try to figure out maybe a fitness app could leverage a Pokemon gym. You’re walking to a Pokemon gym and you’re doing an activity, and maybe we could incentivize people to actually do push-ups. This kind of thing. To build on this momentum, like, “What could we do?” It’s very interesting.

Carlos: As basic as maybe running from point A to point B with …

Jen: Yeah, speed.

Carlos: Yeah, measuring that. Oh, I just had an idea, you remember how we used to play Go Kart, Mario Kart? Can you imagine a version of Mario Kart where you’re running and you’re collecting points as you go? You need to go, over there there’s a big coin, I’m going to run through the coin so that I can get the coin.

Jen: You’ve got to catch them all.

Conclusion

Carlos: You’ve got to catch them all. Interesting idea. All right, I have now, 3 questions, that are more, again, towards yourself. What advice would you give your younger, less experienced self? Let’s say, 10 years ago, you’re still on this road of figuring out what to do. Now that, looking back, what would you tell yourself?

Jen: Yeah. I had this weird career shifting thing, but let’s assume that I’ve already made the shift and gone into tech, what would I tell myself? Probably, to jump on the JavaScript bandwagon earlier than I did. I probably stayed on Cold Fusion a little bit too long because that was the comfort zone. We did Flex for a little while, there’s just a lot of the Adobe stack. I think, now, the JavaScript world is just so exciting and if I would have jumped on it a bit earlier, and learned it more deeply a longer time ago, I think I would be in a slightly more advantageous position, just for my own knowledge. That’s probably my 2020 vision looking backwards.

Carlos: It’s an interesting answer because maybe 10 years ago people were thinking, around 2006, “JavaScript is dead. Oh, Rails is where it’s at.”

Jen: Mm-hmm (affirmative).

Carlos: By the way, we turned into a JavaScript shop from being a Rails only type of shop. We understand exactly what that means. At the same time, let’s say right now, somebody told you, “Hey, do more Cold Fusion because in a couple of years it’s coming back.”

Jen: Right, right.

Carlos: It’s weird. It’s interesting, a lot of people I talk to also say that they were caught by surprise by the sheer strength of what JavaScript has …

Jen: Yeah. This idea of having JavaScript from front to back, and then also Mongo, these new databases, that whole stack has changed. It’s really hard to have foreseen this kind of thing. Hey, this is job security and it’s all good fun in the meantime. The thing I did right, which I’m happy I did, which was, early on take a course in database design. It was one of these little online courses and I’m really glad I did that because I always think that’s a really solid skill to have, to know how to manage a database. It’s basically the brains of your company, you need to understand how all these things work. By the way, if you’re getting into programming, it’s not the dumbest idea I ever heard to become a DBA, that’s a solid job right there.

Carlos: That’s solid advice right there. What’s a book or resource you’d recommend on some of these subject we discussed today?

Jen: Yeah. The book that I had in mind, actually, that’s on my table right now is this book by Lidwell, Holden and Butler, on the universal principles of design. It’s on Amazon and it’s one of these old classics and you can just flip through it once in a while and become a little inspired on some of the standard ideas behind creating something that’s well designed. It doesn’t have to visual design, it can be also the way you might design your software, the way you might lay out a room, or the way you might put away your silverware. It’s just something, it’ll refresh your mind a little bit just to flip through once in a while.

Carlos: Can you say the name again just so it sticks?

Jen: Yep. Universal Principles of Design, it’s a blue and white book. It has a picture of a violin, and a shawl, and Michelangelo’s man on the front. It’s by Lidwell, Holden, and Butler.

Carlos: Perfect. William Lidwell, Christina Holden, and Jill Butler. Perfect. We’ll have that on the show notes also. That’s the first time I’ve heard of this book by the way.

Jen: It’s an old classic.

Carlos: The thing is, I love books. It’s one of the things that I won’t save money on. If I want a book … There’s some books that are, let’s say this book right now, is hardcover, I can only see the used on Amazon for $8. Come on, buy it. If all of a sudden you saw it for 200 bucks, no, too much. Some older books, that’ll happen. Don’t try to skim on books, it’s the thing that will improve your life 10 fold.

Jen: The one I’m looking for is actually the original animation book. I do not remember the name. I think it’s called The Art of Movement or something. It’s by the original Disney animators from the 40s I think, and it’s out of print. If I could get me a copy of that …

Carlos: Interesting. Hey, by the way, now just to add to this, I found an updated version of the Universal Principles of Design.

Jen: Interesting. I have the older one. The Disney one is called The Illusion of Life.

Carlos: The Illusion of Life. All right, that sounds like an interesting one.

Jen: This is a hardcover for … You know what, I think I might grab this. I have a weakness for animation, I think it’s really interesting, especially for game design, and also UI animation and how things move around. This is a classic.

Carlos: There we go. People are listening to us geek out on books, I love it. Well, Jen, this has been an amazing interview. Thank you so much for taking the time, you’ve given us a good understanding of what it is that a developer advocate does and how we can benefit from doing some developer advocacy, even if we don’t have that full-time role, if we can’t afford it. We do understand that it is a role to be fulfilled whether it’s by somebody in the company, or whether it’s by a full-time developer advocate.

Jen: Definitely.

Carlos: It’s really interesting to hear your background.

Jen: Oh, thank you. Yeah, talking to other people at conferences, one of the gentleman I talked to said he’s basically doing advocacy because his employer basically let him out of his desk, and let him come to conferences, and let him write papers. I just thought that was brilliant because, yeah, you can certainly enable your developers to become their own advocates. It will make everyone happier, I guarantee it.

Carlos: Well, Jen, thank you so, so much. Now, actually, before I … The most important question, I was already saying bye. How can people find you and find your work?

Jen: Oh, sure. You can follow me on Twitter, I’m at Jen Looper on Twitter, that’s L-O-O-P-E-R. Then, I have a website, which is Ladeez First Media dot com, that’s L-A-D-E-E-Z First Media dot come. I’ve got a lot of my mobile apps, I have a big portfolio of mobile apps that I’m working on consolidating right now, but I also blog occasionally. You can always find me in a conference, giving a talk, or I might be writing blogs for Telerik as well.

Carlos: Do you have any upcoming conferences, let’s say, in the next 6 months, we need to be looking out for, where we might find you at?

Jen: Yeah. Let’s see, I’ll be at AngularConnect in London, Paris Web, TechConnect, All Things Open. Those are the 4 that are in my mind right now. All Things Open is in Raleigh … TechConnect, Connect.Tech, sorry, is in Atlanta. Those are in October. Then, AngularConnect is in late September and Paris Web is in early October. A lot of travel coming up.

Carlos: I’m jealous. I actually might see you at AngularConnect.

Jen: Oh, cool.

Carlos: Also, in Paris. I think we’re going. I know we are sponsoring AngularConnect.

August 1, 2016 / Comments Off on What is Product Management with Johanna Rothman

Hello Tech People. Today I’m joined by Johanna Rothman. Johanna is known as the “Pragmatic Manager” and is an expert in everything management. She has written numerous books on the subject, consults and shares her wealth of knowledge at many very high profile events.

In my time with Johanna we discuss what product management is and how it differs from product development, the responsibilities of a product owner, differences between a product owner and product manager as well as the differences between a product roadmap and a project portfolio.

Topics we discuss:

1. What is product management, and how does it differ from product development?
2. What are the responsibilities of a product owner?
3. Differences between a product owner and product manager.
4. What is the difference between a product roadmap and also a project portfolio?

Show Transcript

Carlos: Thank you for tuning to Tech People, where real-life tech practitioners share their professional experiences. Hello, Tech People. Today we have the great Johanna Rothman on the show. For those who don’t know who Johanna is, she’s an author, consultant, and a very well-known and respected thought leader in the product development realm. Johanna, thank you so much for joining us today. How are you doing?

Johanna: Thank you so much, and I’m doing great.

Carlos: That’s awesome to hear. Johanna, for those of the people listening to us who haven’t had the luck of finding your work … I learned of you way before I set out to interview you. Way before we had actually met at a conference, I’d read up on the extensive material you have online about product overall, but for those who haven’t found you, tell me a little bit about yourself, and what is it that you do?

Johanna: I started off as a software developer. I was a programmer, and I got into project management fairly quickly, and then I got into program management and management. When I started my consulting business, I said, “I’m all about managing product development.” I got into Agile. I had used staged delivery for my projects forever, and that’s where you work feature by feature, but you don’t … It’s not necessarily Agile. I got into the Agile stuff in the early 2000s. First I was pretty suspicious, and then I realized I was actually doing Agile, so I should call it that. That’s where I am now.

Carlos: When you say you’re doing consulting, aside of, and by the way, I’ve mentioned this to you a little bit ago, you run 3 different blogs, you have a course on product management, and aside of that, you still have time to do consulting?

Johanna: Oh, yeah. Yeah, because once I had the courses ready, actually running them is fairly easy. This is the third time I’m running the product ownership workshop and the third time I’m running the writing workshop, and next year I’m trying to figure out, how can I have a more regular schedule of running online workshops? I have found that a number of my clients really love online workshops. Now, I think I’m a lot more effective in person, but they don’t want to take the 2 days away from work, and I can understand that, or even a half a day or a day away from work. If I offer workshops for the busy people I know that they can take online, where we spend an hour a week in the workshop and then they do homework, and sometimes with a product such as with a product ownership workshop, we have more time “in class,” but they have a lot more time during the week to get their homework done and to try things and then to ask questions, it’s almost as effective as when I’m there, so I’m probably going to do even more online workshops next year.

What is product management, and how does it differ from product development?

Carlos: That’s very cool. Before we end here, I want to ask you a little bit about that so you can explain to us how those workshops run and a little bit of context about them so we can spread the word. All right, so we already spoke about this, and you know that our goal today is to help those that are bit confused, who might be working in product already. They might already be a product manager or maybe people that are getting into it. They’re trying to understand what it is that they’re … There’s so many terms from the product management, product development. There’s a product roadmap. There’s the portfolio.

I think our mission is to help anyone, again, who’s got that confusion about the terms, so let’s find some ways to help them. I think the first question that comes to mind is, what is product management, and how does it differ from product development? You see, even I get mixed up.

Johanna: We have so many things with P’s and M’s and D’s, it’s just kind of crazy. Product management is when you say, “This is the rough lifecycle of the PRODUCT, and we’re going to introduce it, we hope, here, and we want these kinds of releases for these kinds of feature sets, and we’re going to end-of-life it, not all product managers actually end-of-life, but we’re going to end-of-life it at some point when we either have no more customers or we have something else to replace it.” A product manager is externally-facing, so our product manager thinks about who the customers are. They interview customers. They’re interested in the launch issues. They might even get beta people. The product manager manages the product over its lifecycle, so from introduction to end- of-life.

Now, a product owner works with an Agile team, and a product owner is inward-facing. That focus on what happens on the inside, working with a product development team who writes the code and generates the tests to know if the product is able to be released, that’s all a different focus. Product development is what the product development team does. It’s the programmers, the testers, the BAs, the writers, the UI, the UX people, anybody you need to get a product ready for release. In Agile, we have the product owner who says, “We want these features for this release,” and that might be an interim release internally versus an external release, but then the product manager and all of the product owners work together as what I call as part of the product owner value team.

You have the people facing outward, who are the product managers, and the people facing inward, who are the product owners, and maybe the BAs, and they put together that releasing over time, that product lifecycle. The product development team delivers software on a regular basis that works so that the product owner can say, “Yeah, we got enough. We can release this.”

Carlos: Got it, got it. Now, that product manager is the one who reports to the business, is the one that goes back to the CEO or to whomever is in charge in the business decisions and gives them the … I’m trying to find the person that says, “Okay, we implemented this, and these are the results.” Who’s that person?

Johanna: Often, that would be either a VP of sales and marketing, or a VP of marketing, or a CMO, or something like that. That’s a chief marketing officer. A product manager works with the senior management to say, “Which products do you want when, and what is the first set of acceptable, releasable features that we could release?” Let’s think about something probably everybody has in their pockets. I have mine in my hand right now. I have an iPhone. You might have some other kind of a phone, an Android phone or something else, but a smartphone has minimal necessary qualities for it to be releasable because it’s a hard good. It has to be able to make a phone call, has to be able to receive phone calls. Has to have the ability for voicemail. It has to be able to text and receive texts.

There are several handful of scenarios that a product has to do. If you made a phone cheap enough and said, “We will have more updates for this phone, but here’s why our phone is so inexpensive and great, and you should buy it now even though it doesn’t have camera support built in or any of this stuff.” I have to admit, I use my phone more as a camera and a texting device than I do as a phone.

You can imagine that you can release a product with a minimal set of features, and that minimal set of features is something that the business, in some way, shape, or form, either the customers talking to the product manager, or the CEO, or the VP, or the operations committee would say to the product manager, “We really need to get something out by June, and that something has to do at least these things because that’s what we think our customers want, and anything else you can get, great.” That’s where the product manager would then talk to potential customers, understand more about what this means, what a minimum marketable set of features is, and then work with the product owners to implement that.

What are the responsibilities of a product owner?

Carlos: That’s how they differ from outside to inside, so now let’s shift to the product owner, which is, I think, we’re probably seeing that a lot of the people that are going to be listening to this episode work with an engineering team, so more than likely, they’re product owners. What are the responsibilities of a product owner within the product management or development lifecycle?

Johanna: The product owner is key for understanding the feature sets and making small stories. What I see a lot is the product manager and the product owner are supposed to be the same people, and that means that the product owner does not have enough time for the team, and the product owner cannot break apart the stories into small enough stories. When I talked before about the feature set for a smartphone, and I said, “You have to be able to make a call, receive a call, and have a call go to voicemail,” well, even those stories are fairly large. What is make a phone call? You have to be able to bring up the dial pad on the phone, so that might be the very first story, not even having a call go through to another cell phone on the same network, but even just bringing up the dial pad.

If you cannot bring up the dial pad, how can you make a phone call? Now you might say there’s another way to make a phone call where you have people in your favorites or your most commonly used people, or you have your contacts, and you click on a contact. You use your finger and say, “This is the person I want to call.” Maybe that’s the first story that you have. You see where the first story, that first small piece of value, can differ depending on the kind of person you are, and that’s where the product owner provides tremendous value to the team.

I happen to like product owners that are integrated into the team so that when the team says, “What’s the very first thing you want? Is the very first thing you want the search by person in the contacts and then be able to click on that person, or is the very first thing you want a keyboard or to see the keys on the phone so we can actually make a phone call?” That answer is so critical, and that’s not going to be the same for any product or any team.

Carlos: It’s interesting because then the product owner works very close with UX, essentially, not just from a visual perspective, but from a how it works perspective, right?

Johanna: I think so. Maybe if you take a different … Let me use a different example. Almost all of us have security built into our systems these days, right?

Carlos: Correct.

Johanna: If you have login with security, that might be an entire feature set. The first story might be an existing user can log in just so we know that we haven’t screwed anything up. Now, that’s not particularly a user interface or a user experience. That’s saying the first piece of value is the ability for someone we know to log in. There, the product owner might not work with a user experience or a user interface person, but it’s all about that first piece of value.

Carlos: I get it because that’s the thing. They are responsible for getting whatever stories done, even if it’s, let’s say, they’re working with hardware because they could. They don’t necessarily need to be just working with software. They could be building something, let’s say, the hardware of the phone that if there’s no phone yet, they need to figure out how to get that first story done, even if it’s a physical device.

Johanna: Right, exactly.

Differences between a product owner and product manager.

Carlos: All right, so how would you describe the interaction on a daily basis of a product owner within an engineering team? He’s working with the product manager also, let’s say, to define stories for a Sprint. How do they do that? What does it look like on a week-to-week basis working with that product manager and then also prioritizing stories and working with the engineering group? If you could, tell us what would be the difference then between a product owner and a project manager? I think that’s kind of interesting.

Johanna: Okay, so let me talk about the product manager and the product owner interaction first.

Carlos: Okay, and then, by the way, I just wanted to add something very, very quick. Everybody who’s confused at this point, bear with it. Listen on. We’re going to get to it. The idea is that this is confusing because there’s so many project and product and roles. That’s the reason why we’re having this conversation.

Johanna: Right, exactly. I will be happy to give you … At the end of this, if you want one-line definitions, I will be happy to provide them for you.

Carlos: All right.

Johanna: Yeah, so the product manager is probably not available to talk with the product owner more than once every week or 2. All of the product managers I know, they’re out there talking to customers. They have lunch with people. They’re doing focus groups. They’re not available on a regular basis to have ongoing conversations with the product owner or with the team. That’s because they’re so outwardly-focused. The way I like to do this is the product owner value team, which is all of the product owners for a given product, which might only be 1 if you only have 1 team … If you have a program, you might have 37 if you have 37 teams or some number of them, because teams can share product owners because the product owner is inside, is inwardly-focused.

Every week or so, maybe once every 2 weeks, the product owner and the product manager, or the product owners and the product manager, get together as part of the product owner value team. The product owners say, “We’ve made this much progress on this. Do we want to change the roadmap?” The product roadmap is the big picture of the feature sets that the teams will deliver, and the product roadmap is a wish list. It’s not set in stone because you don’t know what the teams can deliver. The product owner works with a team on an ongoing basis. I like it when the product owner sits with or near the team. If you’re using iteration-based Agile, such as Scrum, you might have a meeting the week before.

Let’s call it a 2-week iteration. The week in between the iteration starting and ending, you might have a meeting to discuss possible features or feature sets or stories and get an idea of what they could be. I think of that meeting as either an exploration or pre-planning for the next iteration. Just before the iteration ends, the team would demo, demonstrate to the product owner. I like the people who have done the work to demonstrate to the product owner, unless they want to see if the product owner says, “I would like to try this to just see what it looks like and feels like.” Hopefully, they have already had small conversations with the product owner about accepting stories as they’re done so nothing is a surprise to the product owner, but this way they can show the product owner everything as a whole.

If you’ve done 3 stories from secure log in, then the people who do secure log-in would show those 3 stories all together and say, “This is the chunk of secure log in that we really wanted to show you at the end of this iteration.” That’s the whole point of having the demo. The team demonstrates, and while the team is doing their retrospective, either the product owner participates in the retrospective because sometimes they do and sometimes they don’t. That’s a different problem which we can discuss later. Then the product owner will get ready for the pre-iteration planning session just after the retrospective. I like to have the demo at 9am in the morning, the retrospective from 10 to 12. Everyone gets from 12 to 1 for lunch, and then at 1, we do iteration planning for the next iteration.

Carlos: Let’s say if you could just pick one of … I know you can’t just pick one, but which is the most important between these interactions, let’s say the one that you want to have the most consistently? Which one would you pick?

Johanna: You mean having the product owner see stories as they’re done?

Carlos: Yeah. I’m trying to figure out which is the most important touch point in the cadence …

Johanna: Okay, so …

Carlos: So that we’re building the right thing, so that we’re building the thing that the product manager set out to build with the VPs of the company.

Johanna: What I think is the most important thing is for the product owner to see stories as they are done because we might make a mistake in defining the stories, right?

Carlos: Right.

Johanna: Like that never happens. We will make mistakes in defining the stories, but the key is if you really understand that you can then change and change the conversation for the next story or the next set of stories, now you’ve gotten the feedback and the learning that the product owner needs. Because product owners are humans, and they will think one thing and possibly say another or think one thing and not explain it well enough. For me, the really big thing is how do we get frequent enough feedback, that was hard for me to say, frequent enough feedback so that we can correct any mistakes that we have made and continue on from there?

Carlos: If you get feedback early enough, you can correct.

Johanna: Exactly.

Carlos: Got it. All right, so now, and we’re going to do a sum up pretty quickly here, by the way. Again, everybody listening, bear with us. I think I’d like to eventually, after we’re done here, I want to point the people that are listening to the show to check out some of your blog posts where you clarify or go more in-depth here, because yes, it’s really interesting how you put it into perspective because I am visually seeing the product manager doing role A and product owner doing role B. For some reason, it’s usually thought that they’re doing the same, and they’re both one person. Again, you wouldn’t be able to do both things, mainly because you do have to be very …

You know that whole get out of the office thing? You have to do that, and when you’re dealing with many different projects, or let’s go back to many different products, with many stories, it’s almost impossible to take care of the internal teams and everything that needs to be done within in terms of feedback and user acceptance that I would imagine the product owner has to sign off on, but also doing the going, getting out of the office. It’s kind of hard. Anyways, …

Johanna: I don’t think it’s possible. I think that if you ask a product owner to also be a product manager, or what is much more likely, the product manager to also play the role of the product owner, you are doomed to failure because you will not get enough feedback inside the team, and the product owner won’t know enough to make small stories to see progress every single day. You’re shortchanging yourself in your use of Agile. You’re not Agile, and I would say don’t even try. Go back to stage delivery. Give a team a feature set of 5, or 6, or 7, or 8 stories, and say, “I’ll come back in a month or 2 and see where you are,” but don’t call it Agile if you’re not going to be Agile and take advantage of the feedback and the learning. Okay, I’m a little geeky about this, for lack of …

What is the difference between a product roadmap and also a project portfolio?

Carlos: No, but I agree. For some reason, there’s tons of teams calling a product person exactly that. “Oh, yeah. He’s our product guy.” Wow, that can lead to failure, because you have to be getting both cycles of feedback, externally and internal. Let’s go … We have a few other terms to clear up here, so what is the difference between a product roadmap and also a project portfolio? That seems to be a tricky one for some people.

Johanna: Yeah, for some people, it is. A product roadmap is your wish list for what you would like the product to look like at different points in the future. It’s all about one product and a product manager manages the product roadmap. The project portfolio is all of the projects and programs that you have in-flight or you’re thinking of having in-flight for your organization. Let me give you an example. You might have a product roadmap for the engine product. You have a project that you call your engine, and that product allows all of your other products to work, and so you might have a program with the engine release 3 and some other products also with it in that program. You have a product manager who manages the roadmap for the engine product. Now that product manager might talk with the other people but does not manage the interactions between the other products in your program.

You might have an admin product that you release at the same time as your engine product. That would have its own roadmap. The project portfolio would have some kind of a release of the ACME program that says, “We want release 3 of the engine and release 2 of admin in one program. Yes, we are going to fund that for some amount of time until we get to this potential release.” Now the product managers should talk to each other, the ones for admin and the ones for engine, because they should agree on what’s going on in the given release, but there is probably a program product owner who would say, or program product manager who would say, “These are the releases we want. This is the release that we want for this particular program. We are not the only program and project in the organization. We also have this project over there and that project over here, and we are going to assess which projects we are going to fund for now.”

The project portfolio is always a decision for now, and that’s all about projects and programs. You might have the operations committee making a decision about which projects they will fund for now in the project portfolio. The product roadmap might change, but it’s not a funding decision. The product roadmap might change because customers say, “I want this thing,” or “I want that thing,” so the details inside the product roadmap might change. The product manager will deal with the details in the roadmap, but the project portfolio is not … The product managers don’t decide what happens in the project portfolio. Senior management should decide. Now sometimes the senior managers say, “We want the PMO to decide about the project portfolio.”

I have mixed feelings about that because unless the PMO is deciding on the strategy for the organization, I don’t think that the PMO always knows enough to decide on the projects in the project portfolio, but that’s a different problem. You can see that the project portfolio explains the strategy and implements a strategy of the organization. We will release these projects at this time for this benefit. The product roadmap talks about the feature sets for a given product. One release in the product roadmap might be a given project in the project portfolio.

Carlos: Understood, and then that, of course, then breaks down into say Sprints, and you could break down into stories, …

Johanna: Yes.

Carlos: … all the way down. See, I think we need a little bit one of those infographs that shows you all the way from the top all the way down. By the way, that might be really useful for this episode. I think we should create one of those, and also so you can use it on your site because it’s interesting to just visually see it at a glance and also see the interaction between the user roles, let’s say, within a story. Who interacts with a story or the story level? Who are the people that interact with it? Who are the people that interact with it at a product roadmap level? Who are the people who interact with the project portfolio level, and so forth? Again, it makes things clear, so …

Johanna: I …

Carlos: … I think-

Johanna: … reserve the right then to ask you to review any kind of artwork I develop.

Carlos: Absolutely. I’d love to. I’d love to have it and link it to this episode.

Johanna: Okay.

Conclusion

Carlos: Awesome. Johanna, thank you so much. I think we’ve discussed the main item at hand, which was defining … By the way, if we made people more confused, just re-listen to the whole thing. I think it’s well-explained. It’s just that we repeat product a lot. Just in a nutshell, there’s the manager who defines what will be built, but then the owner is the one that executes the building of whatever it’s going to be building. That’s a nutshell of it.

Johanna: Yeah.

Carlos: Would you …

Johanna: Yeah.

Carlos: … agree?

Johanna: Okay, the product manager defines the lifecycle of the product. The product owner works with the stuff in that roadmap to create stories. A project manager will facilitate the team.

Carlos: Exactly. I think that is the short answer, but it’s interesting to go in-depth. It’s a very complicated world, just the whole product world overall, so I think having this clarity is going to help a ton. Johanna, I have 3 last questions for you. What advice would you give your younger, less experienced self? At the same time, it could be somebody, when you were getting into the business, somebody in that position?

Johanna: Have a little more patience with people. One of the reasons I write about people so much is that I’m not a very good people person. I know this sounds funny, but I’m definitely not patient. I think that just because I understand something does not mean that anybody else understands it, so I need to be more patient. I still do need to be more patient with other people understanding me.

Carlos: You know what, I would say, if you ask me, I would think, and I’ve always thought you’re great with people, the way you communicate and all that. I wouldn’t think that you thought that way of yourself.

Johanna: That’s because I’m working on it. I keep working on it, and maybe I feel as if I will actually get it in some point.

Carlos: Let me tell you, you’re great so far with people.

Johanna: Thanks.

Carlos: What’s a book you’d recommend or some material? After this, we’ll go over a little bit of your books and your workshop. If you could recommend somebody to go on Amazon and buy a book on these subjects, what would that be?

Johanna: I think that the closest book is my “Agile and Lean Program Management” book, where I talk about a product roadmap and then, of course, my project portfolio book. I was thinking about … I’m actually in the middle of writing a book about what the product owner role is and how that is different from the product manager. Steve Johnson has written a bunch of stuff about product management and how to do it in an Agile way. Ellen Gottesdiener’s book, “Discover to Deliver,” is quite good about thinking about how you continue to do discovery in the product owner role. I think that the reason we’re having this conversation is I see still a lot of confusion, so that’s what my book is going to be about.

Carlos: There’s just a book on pinpointing this very subject we’re discussing.

Johanna: Yes.

Carlos: Okay, and when is that book coming out? No pressure.

Johanna: I’m hoping to actually have a version sometime in the fall of 2016. I was having somebody help me with it, and she has been stuck, so I have not made any progress on it. I’m really hoping that she will tell me that she is available now, and I can actually get things going. I am pretty sure fall of 2016, which you’ll notice I’m not saying September, October, or November because I don’t know when it’s going to be.

Carlos: November 30th.

Carlos: We’ll hold you to this, and of course, makes the actual links in the show notes whenever it’s out there. I’m really curious, though, about your workshops. You said you have 2 workshops. What are they, again?

Johanna: … Practical Product Owner workshop is about delivering what your customers need, and that starts in late August. I have another version of that workshop starting in late August. That is all about what you can do as a product manager or a product owner. If you are called one, are you doing the work of both? Are you trying to do the work of one? What kind of work are you doing, and how can you get the best work out of you so that your team can succeed? It’s focused on product ownership, but it’s also explaining to people, if you don’t have a product manager, you need to do this to be successful. I’ve also-

Carlos: You said that the next one is in July-

Johanna: In August. August 23rd.

Carlos: August 23rd. Perfect.

Johanna: I will give you the link so people can actually take a look at it. I’m also doing a writing workshop starting the following day, but that one is full, so that’s Writing Non-Fiction, so you can learn how to sell yourself and your ideas.

Carlos: Is it fully booked?

Johanna: It’s fully booked right now. Yes, I know. I never got out of the super early bird. I was quite surprised by that. I’m thinking of running another one in November, but I will certainly have a more regular schedule of online workshops starting next year.

Carlos: Because at first I didn’t know that you were doing this writing, this non-fiction one, but I’d love to be part of that, …

Johanna: I would love to have you.

Carlos: … to join that. If you make a room for me, a spot for me, I’ll join. I’d love to. It sounds very exciting.

Johanna: Yeah, I am full. I cannot make room for anybody, …

Carlos: Wow.

Johanna: … but I have a waiting list, and I have notification for the next workshop. I think that that will work. We can talk about whether or not you would like to be on that list.

Carlos: All right, well I’d love to. I think everybody should check this out. I was telling you at the beginning that you run 3 blogs and that I didn’t know how you did it. I get it. Here’s a workshop for … That answers that question. Johanna, once again, this has been amazing. By the way, we’re going to have links to all these workshops on the site. Also, how can people find you? Is it at jrothman.com, right?

Johanna: Yep, jrothman.com. Everything is there: my blogs, my way to contact me, my e-mail. Createadaptablelife.com, you can also go there from jrothman.com. If you go to jrothman.com, everything is there.

Carlos: All right, so Johanna, once again I want to thank you so much for your time and helping us get some clarity in all this in the product realm. I want to call it … I want to find the word that encases everything that is product. I don’t know why I think it sounds good: the product realm.

Johanna: I like the product realm. Thank you so much for having me. I really enjoyed it.

Carlos: It was my pleasure, and I am really excited about your coming workshops, and I hope to see you soon.

July 27, 2016 / Comments Off on Delivering Agile Methodologies and Emerging Technologies with Martin Snyder from Wingspan

Hello Tech People. Today I’m joined by Martin Snyder. Martin is the CTO of Wingspan and he’s got over 20 years of experience leading software teams. Wingspan develops document management applications for regulated industries.

In my time with Martin we discuss his background, what is a ‘Hostile Environment’, how do we change hostile mentality, waterfall vs agile methodologies and many other topics centering around ‘Hostile Environments’.

We are extremely pleased to have Martin on our show this week.

Show Transcript

Carlos: Hello, Tech People. Today, we have Martin Snyder on the show. Hey, Martin. Thank you so much for being here. How are you today?

Martin: Oh, great. Thank you for asking.

Carlos: Just let me do a quick intro, but then I’ll let you expand on it. For those who don’t know Martin, he’s the CTO of Wingspan and he’s got over 20 years of experience leading software teams. I thought it will be a very interesting person to bring on the show because he’s got a specific exposure to the things that we live as tech people and I thought it will be an interesting one for the podcast. We met at a conference in Philly, right?

Martin: That’s right. Philly ETE.

Carlos: Philly ETE. I think because of your talk is what I thought, this is now something we’re covering enough in the tech world and I thought it would be really interesting. Yeah. Now, for those who don’t know … I know I just gave a very rough intro to you, but why don’t you tell us a little bit about yourself and what you do?

Martin: Sure. I’ve been developing software for a little more than 20 years. I’ve been in Wingspan for 15 of those years. Wingspan develops document management applications for regulated industries and the talk that I gave at Philly ETE was delivering agile methodologies and emerging technologies in hostile environments. Really, it’s about being a modern software practitioner for myself in a world where you are subjected to a lot of onerous rules that makes it hard to be a modern software practitioner.

Carlos: What’s your background like? How did you end up being in software?

Martin: The story starts when I hit 20 long, long time ago. Typing programs in and out of magazines and stuff like that. I’ve always been interested in how things work and so, I’ve done a lot of programming on my own as I was growing up, writing simple things but as far down as the rabbit hole as I could get. Then, I got a computer science degree and started in the field right around the dawn of the .com era. It’s been an interesting ride, but I’ve been doing programming and then, software engineering and then, management and combinations of those three throughout that time period.

Carlos: You’ve been at Wingspan for over 14 years, right? That’s a long time.

Martin: Yes. It’s been long especially for this field. I think anytime someone’s in a place for more than three years, your eyebrow goes up and you’re like, “Oh, really? That’s interesting.” 15 for me here and we have a lot of people that have been here for quite some time as well. I think that what we focused on here at Wingspan in addition to making sure that everyone’s compensated fairly. We focused very hard on the non-monetary benefits of an organization, that element of company building or culture building of management is … I think it’s becoming more and more popular and it’s not as simple as soda in the fridge and ping pong tables and stuff like that, it’s about really improving the quality of life of your work force both in the building and outside.

Carlos: You know what’s really interesting is for somebody who’s been at one company for 14 years says a lot about your experience and what you’ve been exposed to in terms of the changes in technology and also the ways that the technology is delivered.

Martin: That’s absolutely true. For Wingspan, we’ve been predominantly on the JDM but this is the JDM from 1.2 up through Java 8 and we’ve touched some stuff. We do things on .net, we do things from C++. We’ve seen a lot of ancillary bits and pieces as well. It’s a long time, we have continuity in this space but it’s always changing and if you let yourself fall too far behind, it can be really hard to catch up both in terms of personal expertise and then, just corporate and engineering credibility.

Carlos: What’s your core role at Wingspan? I know that you’re the CTO, but what is your life look like there? What’s your main challenge?

Martin: My biggest responsibility is making sure that as an engineering organization, we’re headed in the right direction and that means we’re choosing the right technologies. We’re deploying them correctly. We’re using the best practices and it’s not always the most modern things but you got to strike some balance on there but you need to make sure that you’re doing things that keeps your organization as efficient as possible. That’s the biggest word that you had out there is efficiency. If you want to get the greatest value generation for time spent and there’s a lot of different ways to achieve that. That’s really the biggest part of what I do is how can we make architectural decisions that lets us solve the problems of highest value while avoiding things that … You spent a lot of time to produce low value and things like that. Technology selection, what you’re going to deal versus what you’re going to buy, what third party software you’re going to rely on, things of that nature.

Carlos: All right. Our mission today is to help those who are in some of these hostile environments still thrive using modern technologies and also modern ways of executing and as you said, the title of this podcast is going to be delivering agile methodologies and emerging technologies in hostile environments. I think the first thing we should do here is let’s define what a hostile environment is. How do you define it?

What is a ‘Hostile Environment’?

Martin: There’s two definitions. The first is it’s almost little flipping but it’s simply anything that’s hostile to agile methodologies for emerging technologies so I think I can’t remember the exact statistic but when they talk about people that work, writing software for a living, a very small percentage of them actually work for software companies. Most of them write software for non-software companies and those environments are generally hostile to agile methodologies. They’re hostile to emerging technologies and they are mainly because software is a secondary concern. Their primary goal is not to have the most efficient practice. Their primary goal is not to have energized technology work force and to keep their software engineering skills sharp and at the leading edge and things like that. Those sorts of environments can be hostile to the things that people are trying to achieve to be as efficient as they can be. Generally, the main characteristic is just the software is the secondary concern. That’s the number one warning sign that you’re in such an environment.

Carlos: Hostile in the way that let’s say that software engineering becomes part of IT and usually, I don’t know why, but I’ve seen IT being relegated almost to a maintenance type of role where it’s just there to support the business, make more money or wherever their money making lies in but actually, it’s interesting. This is probably something we’re going to talk about further down, how do we change the mentality of the business people to understand that the technology side of … The way that they implement technologies could really impact even the bottom line?

How do we change the mentality?

Martin: The first thing is it may not be the business people that have to change. It could be that it’s not a one size fit all for software development. It might be that the development attitudes need to change in certain circumstances. It’s really a balance that people need to strike in figuring these things out. The most important message that I have is in a lot of these cases where things are hostile to what the software practitioner wants to achieve, there’s reasons for it. It’s not simply that no one cares about the software engineer or they don’t appreciate the efficiencies or something. Typically, there’s something more important that’s driving those decisions. In a lot of cases, you end up in these circumstances where you have rationale actors and those rationale actors make decisions which don’t really look like great decisions on their surface.

That’s one of the things that I got into my presentation. I had a little bit where I was talking about cellphone selection and basically, you can manipulate people on to choosing a really lousy cellphone if you just make certain requirements more important than others. Even though you’ve loved to have the phone with the biggest screen and the longest battery life and the best apps and all those stuff, if you’re looking for the best phone to take on like a six-month submarine tour or something like that, then a lot of those things aren’t going to matter anymore if you were going to choose something else.

When you get into these large enterprises, you might want to build a piece of software with a project team that’s going to have a life span of 18 months but you want the software to last 18 years and it turns out which developing methodology you use in those 18 months isn’t really the most important decision. I think having that kind of broader perspective for what is really trying to be achieved is important in making those decisions. That’s why the primary versus the secondary element is so important because if you’re working for a software company, we’re a cloud service. We make greeting cards or something, and that’s the business that you’re in, obviously all that really matters is you just want to improve that service every day.

You want to do frequent delivery. You want to just always be thinking about how to make it better but if you’re one of those other circumstances, what you really want is you want to build it to be good enough and then, you want it to have the greatest staying power. You want it to last with the lowest maintenance cost for the longest amount of time, it’s really different thought processes that have you construct these things.

Carlos: What industries would you single out as being hostile for emerging trends of technologies?

Martin: Well, I wouldn’t want to single out anyone, but certainly the larger the organization, the more likely it is. The more regulation that the organization is subjected to, the more likely it is. For instance, if you work for the largest bank in the world, it’s likely that it’s hostile to agile methodologies and it’s hostile to emerging technologies.

Carlos: In a way, we are promoting agile and emerging technologies but we are also playing the devil’s advocate and saying, “Well, it just doesn’t apply to everything because there’s areas in the business world where it just doesn’t apply.”

Martin: Well, it’s not that it doesn’t apply. Really, my message is about how do you do the best you can when there’s so many fixed constraints that you don’t have all the choices? You can’t just pick up your Scrum manuals, and say were going to do Scrum because there were so many other things that you’re responsible for that that just doesn’t fit that role. When you’re in that, you have these pillars in the sand that you have to navigate around, what is left? What do you have a lot of control over? How can you make choices that lets you make some gains and some efficiencies without really upsetting the apple cart or having to fight really lengthy political battles The hope is I think for a lot of people, the hope is that if you have enough success doing that incrementally, that might draw attention and that might lead to having a little more latitude in the future but I say all of this but my clients are in this category, and so we need to deliver software into these hostile environments but Wingspan is a small and mid-sized agile software development firm.

Software is our primary business. We just happen to operate this space where we come into contact with this stuff a lot. While I’ve experienced some of these problems and I’ve dealt with them over a great period of time, I’m very far remove from someone who’s in like a cubicle farm at some large organization moving from software project to software project. There’s definitely people that have this source of problems much worse than I do. What would I like to speak about is I like to speak about the things that I’ve seen be effective in this environment setting and why I think that they’re effective.

Carlos: I think the two items that we picked out as just for our conversation is the way that we’re delivering projects and let’s call that waterfall versus agile if that’s a way to call it. Then also, technologies technician versus we’re using trending or emerging technologies. Let’s start with waterfall. In reality, we all know what a waterfall is but for those who still needs some clarification, how do you define it?

What is the waterfall methodology?

Martin: Waterfall is when you breakup the different elements of a software project into static pieces that occur in a linear sequence. You have the conception of a project typically followed by the drafting of requirements, typically followed by the design of the software, followed by the implementation, followed by the testing, followed by the deployment, followed by the support and maintenance. All of these things must be completed before the next phase can begin and it’s typically, you want everything to be perfect at the hand off … From one stage to another. For instance, you would like the requirements to be as detailed and complete as necessary before the software design starts, so that you don’t have to reengage those people and have more conversations about requirements and likewise to the software design to the implementation and from the implementation to the testing.

Carlos: It sounds good though.

Martin: Sure.

Carlos: By the way, it sounds like, “We could live with this,” but what’s the downside?

Martin: There’s a couple of downsides. The first is and I think regardless of quality assessment, I think that most people could agree that it is ultimately the most expensive way to develop software. I think that’s a fair statement. It turns out that it’s very, very challenging to get all these things right on the first shot. It’s hard for the requirements to be complete such that all of the software engineers understand what’s required exactly and all of the testers and so on and so forth. Just by way of an example for that, I remember when I was in grade school, I think it was at 6th or 7th grade, we had this exercise in English class where we sat down for 15 minutes and you had to describe your room, so you will write down I have a bed I have a desk and you have this and she spent 15 minutes, “Write out in as much details as you possibly can.”

Everyone sits there and writes it and then they say, “Okay. Well now, take your paper and pass this to the left and let’s just pretend we were all sitting in the circle so that was not complicated at all.” Everyone gets someone else’s sheet of paper and they say, “Okay.” Well now, take another sheet of paper and you draw the room that is being described and you’ve run into all of these issues that you don’t even know necessarily how many walls… The rooms probably have four walls but if you think about most like bedrooms, it’s not exactly four walls, it usually does an inset of doorway or something like there might actually be more than four corners of the room. They’re not describing things like the material of the floor and baseboards and what style of bed. The drawings end up looking nothing like the actual room.

The question is did somebody mess up there? The requirement wasn’t necessarily to describe a room in English such that a non-experienced person could render it completely but you can see where the problem arises. The people writing the requirements don’t necessarily know all the questions that are going to be asked by people down-stream from them so it’s difficult for them to articulate on the first try exactly what needs to be included and what doesn’t need to be included. This is why good BAs make a lot of money. The same thing with the testers asked and the developers asked. They contribute to clarifications of the requirements.

If you spend enough time on it, then you can definitely get it. You can just keep adding and augmenting the requirements until there’s no questions left and how do you construct that in the waterfall methodology and things like that. It is a question. It’s a challenge to do it in all those linear steps. It is possible. It’s just the most expensive and what agile methodologies really strike at is they strike at two things. The first is the efficiency of producing the highest value thing in the shortest amount of time and the second thing is they focused on that value proposition and the communication between the groups so that value is not measured as a number of requirements which are met, the value is measured by the happiness of the people that requested the application and how accurately the manifestation of the application reflects their understanding in their needs.

Carlos: Let’s figure out where each fit just to give us an idea. Let’s say you’re building a plane. I know I’m going out of software here in a second. Let’s think we’re doing something such as a plane, something that is going to carry a couple hundred people, it needs to just fly, it needs to just work 100% of the times unless we’re going to have dead people. Would you say that waterfall applies in that environment better than agile?

Martin: Yeah. This is where waterfall came from. Waterfall came as a software development methodology in the 50s and 60s or maybe even a little earlier but it was applied because they were thinking, “Well, this is how we build bridges and this is how we build boats and this is how we build planes, so this is how we’re going to build software.” There’s two things that is an issue here. The first is that people have been building boats for probably a thousand years. A long, long time, people have been building big boats and they know a lot of things about boats. Even if you just look at modern boats or airplanes or something and if you were looking to specs of like a Boeing 747, I think the detailed specs for like one rivet that is used in one of those planes would probably surprise you at how much detail it goes into in terms of the materials and the strength it needs and all of these different requirements.

Fundamentally, planes have a lot in common with each other but software hasn’t been built for nearly as long and software, a lot of times, there’s not as much common ground in software applications as you would find in something like bridges or building foundations or something like that. I think that’s one element of it and the second is the parallels are usually wrong is that people like in the implementation phase where software engineers are writing code, they liken that to pouring concrete where welding joints or something like that and it’s really not, it’s more like that’s the architecture step. That’s where people are doing very detailed drafting of every inch of every nook and cranny of this and that where all those details are being represented.

They’re not being represented in pictures that people can see. They’re being represented in source-code that has dual meaning to humans and to computers and stuff. I think that there’s been this weird offset where people, originally waterfall was made to line up with construction processes but then, I think the things were lined up with the wrong steps and so, that’s produced a lot of the misunderstanding. That being said, places where waterfall makes the most amount of sense is where software touches the real world, and by that, I don’t mean like a website or something, that’s the real world but not in the same way.

If you’re building software, for instance like that operates in a medical device or something in a self- driving car or telemetry computations for a rocket or something like that, you don’t get as many chances. It’s like failing unit testing and getting a little red screen isn’t really that big of a deal but sending a $70 million rocket into the ocean, that’s a little more costly. When you start to have software that interacts in a more real way with people, with the world, with people’s lives, I think that there, you see that the waterfall methodologies make a lot more sense where your tolerance for failure is much lower and that’s kind of the tenants of agile is it isn’t just you’re iterating quickly and you’re trying to deliver as quickly as possible in all those things, you’re trying to have this really tight communication between all of the interested party, so you find out your mistakes as quickly as possible.

It’s not just you’re trying to deliver quickly, you’re trying to fail quickly, you’re trying to make your mistakes early in the process and have them be detected and corrected and there’s circumstances where you can’t really test the software that early. You have to be more rigorous with other parts of the methodology.

Why agile is better, in the right environment?

Carlos: Let’s build a case for those people that are not going to say, “Yeah, waterfall.” Let’s show them why agile is a better way to deliver software in the right environment.

Martin: Well, a couple of things you’re trying to avoid with any software product, the biggest one is after the money is spent is showing it to the people that requested it and having them say, “This isn’t what I want.” That’s really one of the most colossal failures. It’s always better to fail sooner because if the customer’s not going to get what they wanted, you’d rather have been six months late and have your project cancel then make it all the way to the end and only you find out then. That’s a problem because if at the user acceptance test phase, when the people that commissioned an application get a chance to see it, it usually happens very late in a project.

And so you might say something like why not just move that up and they can’t move it up and you can’t move it up because a lot of these people aren’t software practitioners and so, if you showed them some work in progress, they don’t have the vision to see what you’re trying to get them to look at and so, they are always disappointed then either. Really what agile says the answer is to engage them completely in the project. Don’t just show it to them here or there or whenever you’re told to in daily contact or more, just constant contact with what’s going on, let them see the construction of the process, let them interact, ask the questions, don’t wait, don’t be like, “Oh, you have to write all your requirements, and then we’re going to go and build it.” No. We’re going to draft the four requirements as we’re building it.

This is the story that we’re constructing this week. Let’s just talk about that and we’re going to keep iterating to make this better and better and better and then, we’ll all know more about it in the end and we can decide are we done or are we going to take another shot at it or something like that. Really, it’s not so much about technology. It’s not really about anything other than communication. Agile is trying to take away that static serial communication structure waterfall and is trying to get constant communication between all interested parties, so they’re all making progress at the same time rather than saying, “Hey, for three months, it’s your job. I am going to sit on the sidelines and I’ll just let you know when I’m ready.” It’s not like that at all. It’s really a communication mechanism but it’s also an organizational culture. You have to have everyone on board that that’s the right way to go and you can’t just say something like, “Oh, we developed our software agile-y. Our software engineers are agile practitioners.”

Statements like that, they reflect a lack of understanding of what agile is. Agile has to be like top down and pervasive through the whole organization that everyone is participating at all times. It’s really the most important facet.

How do we get everybody to buy in?

Carlos: What will be your biggest piece of advice for somebody in let’s say software leadership within an organization? Let’s say that has been established for more than 20 years and they’re in the midst of implementing some of these new ways of delivering. Again, in a hostile environment, what’s the biggest thing they need to be thinking about in terms of how do we get everybody to buy in?

Martin: That’s a great question and it turns out it has a really great answer as well. There’s one thing you want to focus on, it’s a continuous integration server and this can mean different things to different people. You can have something like Jenkins or Bamboo or something that’s doing continuous builds and unit test and deploying to an environment or it could just be some extra computer that someone is happens to have in their office. The thing is it takes what you can get especially in a more hostile environment. When you set up something which is updated with great frequency and by that, I mean daily or more and that becomes the focal point of your communication. You communicate through that.

If you have a question, you point them to some area of this work in progress build and you say, “This is what I’m asking about,” and then somebody … If they want to see something, they can tell you where they want to see it and that increases engagement in a couple of different ways but it also will improve many other areas of your software development practice. To have an active continuous integration server, you’re going to be doing a ton of builds. You’re going to have build automation perhaps better than you’ve ever had before. You’re going to have a unit test. You’re going to have things that you have to do to be able to deliver a continuous integration server in a real sense and once you start down that path, if people start to see the value, it just makes you want to invest more in it.

If you pick one thing, that’s what you pick but it drags almost everything else along for the ride. Everything else is good about agile and about best practices in software development in general, just doing that well will cause you to do so many other things well and you will never go back.

Why change?

Carlos: What’s interesting about your answer is that it almost takes you towards an anti-technologist/technician, right? Because all of a sudden you are having to implement new technology, so let’s jump on that subject. What are some scenarios where this can happen and why does it happen where companies just say, “I’m going to stick to PHP because PHP is the future forever.” They may have valid reasons but they’re not willing to move from version 0.1 of something towards where we are today.

Martin: I think ultimately it comes down to cost but not in a bad sense. I think that like I said earlier, the people making these decisions are usually rational actors and so, for instance, one of the things they might be saying and your example is they might think that they have greater access to a talent pool of PHP developers and if they had a need for a PHP developer at say one of the three levels, they know exactly what that position will cost. They know that they can find somebody that will meet those requirements and they know that they can fill that position within a certain amount of time and if you were to compare those elements both what you think the numbers are and then, what your confidence in those numbers are for something like PHP and then can go and compare that to something like Haskell. You would see why this makes such a difference.

You can’t hire an entry level Haskell programmer. Most of the Haskell programmers are very advance practitioners, they’re very expensive and there’s not very many of them and there’s certainly not many on the open markets. Answering any of those questions, what they would cost? How applicable they would be and how well it would take to find someone to fill the role? Those things all turned into questions, and so when you’re looking at programming platforms, that’s one big thing. If you have a large organization, that’s already filled with PHP programmers, you have two choices. You can retrain them all or you could get rid of some or all of them and replace them.

Both of those are pretty expensive and it’s not necessarily a great way to treat your work force, it’s a challenge. If you wanted to make a big shift and you had say, a thousand developers even if you were committed to retraining, it’s not necessarily that likely that they’re all going to complete the training and still be effective or you’re going to have some attrition one way or another through that process. When you’re looking at technology platforms, you’re committed to more than just the language. You also have all the people involved. The other thing you see more like the service side technologies like operating systems databases and things like that, the larger organizations, they realize pretty quickly they can save some cost by not having a lot of specialties on the project teams and instead having a pool of specialist for technology that are shared throughout the enterprise.

Ten people use your Oracle shared database and that cost 1.5 million a year run, then each of the ten projects get charge $150,000 and that’s a very easy way to do the accounting and so, once you start doing something like that, if you’re standing up a new project like your costs are much higher to introduce your new technology because you have to bear all the build out costs versus you can just choose some existing internal platform and just get a slice of those shared platforms in as much less costs. I think there’s a lot of direct economic factors that come into play in those larger organizations.

Really all we’re trying to do is we’re just trying to amortize cost across multiple projects and that leaves the homogeneous environments and then, once you start down that path and you start to have homogeneous environments like two thirds of your applications use BEA WebLogic and Oracle, then it becomes much more costly to build something that doesn’t use that shared platform, so it creates this very high friction for using your technologies.

Balance in a hostile environment.

Carlos: How do you balance that? In your specific case as a CTO where you are making these decisions, for example, I think all the variables you just pointed out are extremely important and are the it for a business but how about the cost of that? Meaning for example, let’s say that you’re losing engineers because you are working with the old technologies or technologies that are paying to work with. As we both know, the modern engineers want to work with modern technologies, do you want to get ahead? How do you balance that out?

Martin: Well also, there’s a couple of things. First is the further behind you fall, whatever that means to you. The further behind you fall, the more expensive it is to catch up. One way is the changing more frequently and when you’re talking about like library versions, that’s a little easier to understand. It’s like, “Okay.” This library we depend on, from version 1 to version 2 and it’s still taking a while to handle the upgrade but if we wait until it goes to version 3, then it’s going to be a real, real mess. It’s a little harder to see with programming language like when do you go from … When do you adopt to Java 8 like when do you retire Java 6 or something like that? Those things are … They’re hard. It’s definitely hard.

When do I select new technologies? I think what it forces people to do is it forces people to really answer the question of what they’re getting in return. If you look at, let’s say I’ve been building Oracle applications my whole life and I want to build a Mongo application instead, having to cost justify that isn’t necessarily a bad thing? Why do you want to do it? It’s because you read a blog post and you’d like to try it out because there’s a lot of better ways to try out Mongo than to put some some $5 million corporate project at risk but on the flip side, you might end up in some situation where, “Oh, no. We’re actually looking at what we’re trying to do isn’t achievable with Oracle and what we’ve really need is we need something like a solar index. If we can just get solar farm deployed, then we’ll be able to build …” The same piece of functionality, we’re going to build it in like a quarter of the time, it’s going to operate 20 times faster and it’s going to save us this amount of money at Oracle licenses or something like that.

There’s definitely a lot of cases that have to be made in those larger organizations but also it gets down to what exactly are you trying to achieve and why you want to achieve it that way? There’s definitely cases where people are turning software projects or technology decisions into science projects. Gee this is curious. I wonder what happened if … There’s a more deliberate way when you actually bear the responsibility. You need to take a closer look and you need to really understand what it is that you’re giving up by not using what you’re used to using and what it is you’re gaining with the new thing that you want to achieve? Then, the recruiting angle is an interesting one as well. You don’t only want to attract the people because of the technology stack that you have because that’s the only reason you got someone, I think you’re going to have a tough time retaining them. You can’t always put the shiny new thing in front of them every six months.

At some point, there will be something else they’re interested in and they might leave for that reason but at the same time, I think that if you’re really trying to manage a healthy work force, you have to do at least something to help people stay current with what’s going on. If you let your entire work force stagnate in terms of technology growth and development, I think that that is a failure of management because what’s going to happen is you’re going to lose access to a whole portion of the talent world that is staying current and there’s likely a lot of people in there that you would like to have access to it and all you’re going to be left with when you go to hire is you’re going to be left with other people that haven’t been able to keep up either and that’s usually not a high selling point like when you’re starting to say, “I want to add five people in my organization.” You don’t normally start with, “I want to hire five people that haven’t been able to keep up.”

You might have your own reasons for struggling to keep up but when you go out to the work force, you’re going to want to bring in like the people that have done as much as they possibly could.

Conclusion

Carlos: Martin, this has been an awesome interview because you’ve given us both sides of the equation not just the one sided. A lot of people fall into like this is the only way because for everything it applies and the reality is that it doesn’t. The reality is that there’s two sides for everything and you’ve given us both sides for both … The ways to deliver and also, the actual technologies that we think that we’re delivering but now before we end the interview, I have three last questions for you that are more about you personally. What advice would you give your younger, less experienced self?

Martin: That’s a good question. I thought about this since I saw it in the preview on the question, I thought for that a little bit. What I would say to my younger self in terms of software engineering is embrace a new ability sooner. It’s a functional programming concept but you don’t have to be limited to functional programming to apply. If I was to pick one thing, that leads to a clarity of thought as a programmer faster than anything else that I can think of.

Carlos: Awesome. What will be a book you’ll recommend on the subject we discussed today?

Martin: I don’t have one book to recommend. I think for what I’m talking about, I’m talking about this world of compromise of trying to do the best you can in an area that isn’t particularly interested in you doing the best you can. There are no books on that topic. I think that what people want to do is in terms of methodologies is you want to read anything that’s going to help you understand agile principles, not agile methodologies like knowing Strong Well doesn’t really do you any good versus understanding the benefits of the communication pathways and the integration servers and things like that. I would just read online for the agile stuff and then for the emerging technologies, it’s so much of it depends on what problems are interesting to you.

I wouldn’t for instance recommend people will go out and read up on Spark because Spark is really cool and a lot of people like it and people that know it well make a lot of money. Those are the wrong reasons to go and read about Spark, but if you’re actually interested in digging big data problems if you have access to large data sets especially there’s a lot more data coming out of municipal governments than has ever been available before. If you’re interested in problems like that, then using Spark in that context would be a very smart move. You want to start with a problem, don’t start with a technology and read up on it. Try to find a problem that’s interesting to you and then, seek out the technologies that would let you do it. I don’t have any one book on either topic, but that’s the approach that I will take.

Carlos: All right. That’s a good approach. Now, how can people find you and find your work?

Martin: I’m on Twitter, @martinsnyder. I have a blog, martinsnyder.net. Those are the two best ways, I’m on LinkedIn and other things but if you can start at one of those two spots, you can find me on all the others.

Carlos: Are you guys hiring at Wingspan? One of the things we’re doing is the people that we’re interviewing may want to hire people that are listening. Are there any spots you guys are trying to fill?

Martin: Wingspan Engineering is always interested in people on the back end, our dominant technology is Scala. On the front end, our dominant technology is ReactJS but we recognize that when you deal in emerging technologies, those are not hot off the presses but they’re enough. We don’t necessarily hire for skill and experience in those areas. If people are interested in them, that’s usually enough. They can pass the other parts of the interview and we train up in those areas.

Carlos: They can check you guys out at wingspan.com?

Martin: Correct. Thank you very much.

Carlos: All right. Well Martin, once again, I want to thank you so much for the interview. I think as I said, it’s been very interesting because you’re not just exposing one way like this is it but it’s more of a brainstorm approach to this like if then, do this type of thinking versus only do this, do this, do this. This stick is not the only tool we’ve got. We’ve got all sorts of tools, so I think your answers have been great. Thank you so, so much.

Martin: Well, that’s the rule I live in so I’m happy to share it with you.

Carlos: All right, Martin. Thank you so much.

Martin: Thanks a lot, Carlos.

Topics we discuss:

1. What is a ‘Hostile Environment’?
2. How do we change the mentality?
3. What is the waterfall methodology?
4. Why agile is better, in the right environment?
5. How do we get everybody to buy in?
6. Why companies don’t make the change?
7. Balance in a hostile environment

June 23, 2016 / Comments Off on Javascript in the Enterprise with Jeremy Wilken from Teradata

Hello Tech People.

Today I’m joined by Jeremy Wilken. Jeremy is the author of the current best-selling book about Ionic, Ionic in Action. At the moment he is also writing a new book about Angular 2 called Angular 2 in Action. While he’s writing these great books he is also a Senior Software Engineer at Teradata. Teradata is a leader in end-to-end solutions and services in data warehousing, big data and analytics.

In my time with Jeremy we discuss his background, Javascript within an enterprise product team, AngularJS, Ionic, methodologies within an enterprise product team and the future of Javascript.

We are honored to have Jeremy on our show this week.

Topics we discuss:

1. What is Javascript?
2. Angular JS
3. Ionic
4. Methodologies Within an Enterprise Product Team

Related Links:

Welcome to the show!

Carlos: Thank you for tuning to Tech People where real life tech practitioners share their professional experiences. Hello tech people. Today we have Jeremy Wilkin on the show. For those who don’t know who Jeremy is, he’s the author of one of the current best sellers in Ionic called Ionic in Action. He’s also a senior software engineer at Teradata. Jeremy, my friend, thank you so much for coming on the show. How are you doing today?

Jeremy: I’m doing pretty good Carlos. How are you?

Carlos: Man, I’m doing great. I’m happy to have you. The audience that is listening to this doesn’t know, but we’ve tried to record this episode a few times so I am so glad that we got to do it because you’re a friend and you’re somebody I respect deeply in the Angular community, the software engineering community, also in the Ionic community. I am very grateful to have you on the show.

Jeremy: Thank you. I appreciate it.

Carlos: Last time we spoke you guys were dealing with a pretty few important projects. As you mentioned recently there’s been, you don’t have to go into specifics if you can’t, but you guys are doing some pretty cutting edge stuff at Teradata, right?

Jeremy: Yeah. Well, Teradata is a data warehousing company at its core and primarily the primary product is a database system. We’re in a world of research trying to build out some additional technology, software applications and things that are somewhat new to this space where we’re able to make leveraging that database system better whether it’s our database or even other types of databases and really focusing on things like streaming, data, which these are a lot of buzz words perhaps with the way that all that stuff gets played out into the marketplace, but really trying to build out a suite of applications that help make loading and consuming data easier for businesses and developers.

We kind of have a unique perspective in our world where we’re building out fairly technical type software for basically consumption by other software and developers, but we’re still trying to apply well designed UIs, well designed application APIs and try to apply best practices in all these areas. Not just in the core underpinning technology, but build that up through the whole stack. It puts us in a unique position to really build out a full platform of things.

Carlos: That sounds real cool that you guys are doing cutting edge stuff. You’re kind of innovative. You guys doing the innovation in the innovation department basically. You’re the R&D of the R&D Department.

Jeremy: Something like that. I think technically we’re called labs, but something to that degree.

Carlos: There you go. All right, so tell me a little bit about your background and how did you end up becoming an author?

Jeremy: Sure. I have been a software developer or web developer for around twenty years. I started back around the early days of the web. Back then it was very simple. Everybody built plain HTML stuff. There was a little bit of server generation perhaps, it was applets and some of the scary things of the ’90s. Started in that era.

Over time delved more into the backend and into more engineering and not just coding, I suppose you could put it that way. Building out custom applications that ranged usually from a PHP kind of architecture a lot of times, but sometimes other languages and other frameworks and things. I spent a lot of time over the course of my career, a lot of it freelancing or contracting with different types of roles and companies which gave me a lot of unique perspectives and opportunities to learn about different types of businesses and different types of needs for the application.

About five years ago really started to land squarely in this front end world. Always had done front end stuff, but had to really settle down into learning Javascript as a first class language and the front end architecture, really understand how the browser works. The last five years or so I’ve been really focused on building out particularly AngularJS type applications.

Through all those processes of shifting around different places, having some different roles, I at one point was building a mobile app and we had had an Angular application ready. With the Ionic framework, it’s built on top of Angular leverages, Angular, so it was a natural way to jump into building a mobile app for me. We actually reused a lot of our code from that. At some point I got connected with a publisher in order to start writing the Ionic in Action book. They kind of came out and reached out to me as someone who had been fairly active in that space and was able to put together that first book and I guess working on a couple more. That’s an interesting space to be in as well, but that’s kind of my background.

Carlos: I hear some rumors though that you may have another book in the works, probably pretty soon, right?

Jeremy: I have Angular 2 in Action right now is in action. I’m still working on writing that with two others. As well as another book that I’m trying to spearhead more as a community effort, but it’s going to be looking at Javascript, the language, particularly the more modern most recent additions to language that a lot of developers may not be familiar with yet.

Looking at it from the lens of how Angular JS will consume that. How do those constructs play into writing quality applications there? That’s a self-publish kind of open source book, if you will, that I’m starting on. It’s still in the early phases there.

Carlos: Man, that sounds very interesting. It sounds exciting and like a lot of work.

Jeremy: A lot of work is an understatement, but it’s something I’m passionate about, so it’s worth it.

Carlos: You have two kids. One on the way and a kid already.

Jeremy: Correct. One plus one soon.

Carlos: A new one. Wow, that’s going to be a lot of work.

Jeremy: Sleep is not an issue.

Carlos: Well, all right, so I think this is going to be a very cool interview based on what you are doing today personally. Also what else you are doing at work. Just to get everybody into what we’re going to be talking about, so we’re going to be talking about Javascript within an enterprise product team, so we’re going to talk a little bit about why, sort of an introduction to this world. We’re going to talk about Angular JS. We’re going to talk about Ionic. We’re also going to touch briefly on some of the methodologies and how you work as a team within enterprise product team and also a little bit about the future of Javascript and where we see this community going.

Jeremy: Awesome.

Carlos: Okay Jeremy, as I told you earlier the goal of our interview is to help everybody listening to understand the new ways of this Javascript modus operandum and if they are already, they know what we’re talking about, then even better for them. We’re going to go a little deeper into some of the areas. For those who are not very familiar the main thing is to just help them convince their leadership because again, we know that innovation sometimes goes from the ground up but needs top bottom support. We’re going to help them out a little bit. I think just by letting them see what the pros and cons are. Let’s get started with that. Can you help me define this Javascript lens in which we now build web applications?

What is Javascript?

Jeremy: First and foremost Javascript is the language of the web as far as interactivity. You have HTML CSS Javascript that essentially makes up the composition of any kind of application that you build for a browser. When we talk about building a web application we often mean a combination of those three things. The Javascript is where we put in anything that’s going to have business logic or interactivity. There’s very rudimentary or no support for much of that in CSS and HTML.

Javascript is our place in the web for creative interactivity in handling inputs and outputs and basically being able to write software. We really want to make sense of this world that we live in with Javascript because if we understand the language and really understand what it can enable us to do, we’ll write better software. It’s also something that’s been not necessarily abused. Sometimes developers just casually learn it and leverage it and don’t always understand implications of what they’re doing and therefore miss out either on opportunities to optimize or make better applications.

However, in worse situations may leave themselves open to vulnerabilities or bad design that will ultimately frustrate their users. Diving deeper into what the language really is about really helps us as engineers.

Carlos: What would you list out as some of the pros of this way of working?

Jeremy: Well, the web has won as far as it’s the largest platform to deploy software that is not owned by anybody. It is across the most devices. You cannot do the same, if you build an IOS app you are locked into a proprietary platform that you have to have a specific type of device. You build a web application and put it out there, just about anyone can access that with any device that exists. They’re all keyed to pull in the web platform.

The biggest pro of any is just that it’s just accessible to anyone. It’s also fairly mature now. It’s been twenty-some years in the making. There are still some quirks about it that have drug along over the years and there’s definitely some security concerns that we might have, but overall it’s a fairly stable and fairly robust platform that lets us do all kinds of stuff that is quite difficult to do in many other platforms. I really think, I always believe in and bet on the web in general. Javascript is central to that.

Carlos: In the past we were building applications, and I say the past, but it’s probably still a huge, probably the majority still of the web is still being built on single systems where the front end and backend live in one server, whether it’s being done on PHP for example. That’s just a common example. What is the difference now? We are splitting things. By the way, I know these things, I’m asking you because I want to hear your explanation because you’re such a much better educator than I am.

Tell me the difference about how we used to build web applications within one server, right? Everything in one server. Let’s say the Ruby on Rails way which was very much a one server. By the way we love rails. It’s evolved form that single server view or that lens. Also how let’s say a WordPress set up works, all in one server. How does it work now?

Jeremy: Yeah, WordPress, Drupal, Rails, Django, any of these backend or CMS type platforms typically run on some sort of server. Some of them can be what you could say clustered and expanded out, but typically they do run on a single instance. Everything happens in that server world. You’ve got your database. You’ve got your backend logic. You’ve got your persistent storage. You’ve got all your rendering typically happens on the backend side.

When I go to a website that’s run by one of these CMS’s or platforms, they will send me all of the HTML and everything pre-rendered based on maybe I’m logged in, I get a different type of information versus I’m locked out. The server is doing a lot of work. Everything is maintained, there’s a lot of state there. There’s a lot of managing of data. That’s all happening there on the server before the user even gets to see the page.

The architecture is very focused on that server and there’s some really good things that can happen from that. You have a single place where everything is managed. It seems logical and helpful to developers to have this one thing to think about versus having to split it up and what we’ll talk about in just a moment and to have more things to worry about.

hat also can cause some of these other drawbacks. The more modern approaches to maybe for the term micro-services, basically breaking apart discrete parts of the application into individual pieces. One of the big benefits that starts happening is you pull out your user interface web application part and you put that in a stand-alone place. You pull out your database accessing stuff. You turn that into a RESTful API. You put that somewhere else.

You may have several of those in fact. You can do lots of interesting things with that, but let’s just keep it simple for now. Once you separate those things out you are now able to build a website that can access that database or you can build a mobile app that also accesses that database through the same API. That’s exactly how I got started with Ionic. You’ve decoupled discrete applications in a way that allow you to expand and iterate in a way that was very difficult when you had a monolithic-type application. You were able to iterate. You could add new APIs or something like that to your backend storage system or you could even swap out the entire database system for a whole different type of database system and the front end wouldn’t know it all as long as the data kept coming back correctly from the API.

Decoupling your applications and making it possible for us to really think about each individual piece as its own entity means that each application can be developed more cleanly, separated from other things. Usually you can have different teams more easily working on one piece or another piece because there’s sort of a contract. Let’s say these are how these pieces will interact, but internally it doesn’t matter how they work. I could write this in any language I want. They’re going to communicate over APIs which are RESTful. I could write that in Go, I could write that in Java, PHP, it doesn’t matter.

It allows different technologies to coexist easily as well and you’re not so tied to a particular structure that something like Rails might provide. A lot of great things that happen with Rails, a lot of productivity boosts, but on the same time you’re putting yourself into a single box. As you scale out and build larger enterprise-type applications, that tends not to work as well when you need to scale up to thousands and thousands of nodes of a particular service or you need to be able to handle millions of requests per moment. You’ve got to be able to break these pieces apart and scale them, manage them in some way. That gets into operations and things, but realize that there are better ways of managing smaller individual pieces than large applications.

AngularJS

Carlos: We all know Angular JS is pretty hot today and again, you mentioned earlier that you guys are doing a lot of work in it. Why is Angular so hot today and how does it mingle with that introduction or that explanation you just gave me? How does Angular play within that world?

Jeremy: Angular is able to take over for a traditional server backend that had a lot of logic built into it. One of the things that I used to do was build out, it could be like a shopping cart system or something of that nature for eCommerce of whatever, and there would be a lot of logic that would happen. We did all of that in the backend.

It would be things like adding up to a cart. When you do that you’re sending information back to the server, the server is processing it and it’s re-rending HTML and content and sending it back. It takes a moment, that’s a refresh of the page or something like that. With Angular, and putting things back into the browser, moving that logic, taking something from a shopping cart or a catalog and put it into my shopping cart, I can do that with Javascript. I can move those things along and I can make the interaction and display that stuff. I can animate it, I can do all these things really quickly.

It’s very snappy, responsive. The logic exists because it’s not a security type thing. Putting something into my shopping cart is not like changing my password type thing. From a logical standpoint I can put that business logic into the client, into the browser. Then once I’ve moved something into the cart Angular is able to just alert the backend through an API and say hey, remember that I’ve added this. It will persist that data for me.

Angular is just a well-structured framework or platform, depending on how you want to look at it, for building these web applications, especially when you want to leverage restful API architecture and breaking those services apart. Some people are able to use it. In Rails I think you’ve mentioned and there’s ways to do that. It really shines when it’s a stand-alone, front end application that actually is basically sitting on its own, has no knowledge of the backend systems and just communicates over rest in order to manage the business logic of the applications. That’s how you separate those things out. Angular JS makes the web application layer something that is much more like a software platform rather than just coding up some J-query snippets that hopefully make everything work.

Carlos: How do you think Angular 2 changes a little bit of that? You and I, we were just at Energy Conf and we were there for the announcement of Angular 2 going out of beta and into RC1. Is it RC1?

Jeremy: Yeah. I think they’ve made it …

Carlos: Anyway, in some RC, right? It’s a pretty big shift from what we’ve seen in Angular for the past couple of years. This is probably more interesting for the people that are familiar already with Angular. What is the biggest change do you think?

Jeremy: I think Angular 2, and really modern applications today, so let’s actually take a step back and look at five years ago when I started. When Angular 1 started in fact is about when I really dug into this web architecture platform as my main place of putting code. You did things very differently than we did today. Back then it was still we were working through a bit of [inaudible 18:45] stuff. We did a lot of coupling around the application layer where we would build out parts here and parts there and they would talk to each other and maybe have a chart. It’s reloading data and so you have to keep the chart updated.

Those different processes need to be able to keep together. Often the architecture of that was sub-optimal. We kind of knew it but you know what? It worked and it was great because it wasn’t on the backend and this stuff was happening in real time and very quickly in the browser. That often sufficed for poor architecture.

With Angular 2 and it’s not just Angular 2, but other things like Ember and React have really pushed forth this concept of componentry and really making … We talked about breaking apart our applications stack into discrete parts. We’re kind of doing the same thing on the front end application when we look at a page, you really think about there’s a bunch of discrete piece inside of that page. There’s a little profile box at the top. There’s a search bar. There’s a nav bar. There’s the main content area.

These different things are considered individual components and they have their own essentially isolated structure. I think Angular 2 nails that structure the way of creating these components in a way that Angular 1, it kind of can do, but it just can’t do it in the way that Angular 2 did because they were able to look at all the pitfalls that existed int he first version and basically re-factor all that out and redesign some of the basic concepts that are still very similar, but fix that problem with components.

These isolated components, now they may communicate kind of like REST APIs, but instead with events. Other than that they are isolated independent pieces of the page that just work. You can plug them in anywhere whether it’s your application or someone else’s. I think that’s the big shift that we need to embrace on the front end is this component style architecture.

Ionic

Carlos: Let’s jump a little bit into Ionic. I know you’ve got a lot, a lot of experience in Ionic. What is Ionic and why is something that people need to be aware of?

Jeremy: Ionic is an extension of Angular. They layer on top of Angular with their own set of UI components primarily where you’re able to build mobile apps that are written in HTML, CSS and Javascript. It’s really quite practical for somebody who is a web developer who knows Javascript and makes it very easy and [inaudible 21:12] to learn Swift or Javascript C or Java. You’re able to build out mobile apps that look and feel like the native apps, but you’re actually just using Javascript.

Its biggest selling feature is the UI componentry that it provides and so Ionic is a really good example of components. They have widgets for scrolling lists and for dialogues and modals and things that they’re designed in such a way that they’re mobile optimized and look and feel kind of like the native SDK forms of the same thing. I build out one app and then I can deploy it to both IOS and Android and Windows all at once. That’s built on top of another technology called Cordova, but Ionic is well integrated into this stack of things that makes it very easy for web developers to build out native mobile apps.

Carlos: I know that there’s Ionic 2. How long ago did Ionic 2 come out?

Jeremy: There’s still Ionic 2 is tied to Angular 2 so they’re iterating with Angular 2. They’re not fully out yet either. They’ve been working on it for probably almost two years now. They started back when Angular 2 started development. They actually worked very closely with the Angular team trying to help them figure out different issues with approaches, how they work on mobile since the Ionic team is more or less kind of the experts in this area. The Angular team has looked to Ionic often for support and guidance on how things need to be optimized for the mobile platform.

Carlos: What do you think is the biggest shift in Ionic 2? Is it some of the same of what we saw with Angular 2?

Jeremy: Yeah. Ionic 2 adopts Angular 2 holistically. The same benefits really come across. Ionic is primarily about the UI componentry. There’s some additional things that help you access the phone hardware. Maybe you want to get access to the camera. Ionic 2 is going to do a better job of helping to integrate that. Ionic 1 has that, but it’s sort of a secondary thing.

First class support for native integrations with the device, but all of the concepts of Angular 2 all get applied just the same into Ionic 2. I’ve been telling people Ionic 2 isn’t a dramatic shift in many ways because the same things are going to be there. There’s still the dialogue and modal components, but what you’re doing under the hood in the way that you’re building has a different mindset. You’re building on top of the Angular 2 mindset which is component-based. You’re really thinking about your architecture as discrete pieces of componentry.

Methodologies Within an Enterprise Product Team

Carlos: Got it. Let’s talk a little bit about how working with this, what it is or how it is to work with these frameworks and just by your example. Has working with Angular or Ionic made significant changes in the way that you guys work on a daily basis?

Jeremy: They have. I wouldn’t have come to this component architecture probably on my own without some of the things that Angular 2 and Ionic 2 have been pushing for. Part of that was when you build applications of a certain size you don’t necessarily see all the pain points and so when we started building out some larger applications I start to feel a bit more of these limitations of these older architecture and designs.

These things will be largely mitigated in newer versions. We’ve changed the way that we design things. It’s interesting that we had come to some of the same approaches that they’re now advocating. Maybe slightly differently, but more or less we’re doing the same concepts with a slightly different approach perhaps. The ideas and things we’ve all kind of come together on as this component driven architecture, but we’ve also started to integrate stuff like we’re leveraging modern Javascript, so ECMAScript 6 is the ES6 is what it’s known usually as. It’s the most recent iteration of Javascript specification.

This is just a whole bunch of new features that are brought into Javascript that we leverage a number of those. Also we’re bringing TypeScript in which is what both Ionic 2 and Angular 2 are written on, so that’s the fairly natural thing, but it’s really changed the way that I think about how I write my applications because I didn’t think about typing information as a very necessary part of front end applications because I was just so accustomed to writing Javascript without types.

I shouldn’t say that. Javascript has types. Always has. What it doesn’t have is type enforcement. TypeScript allows me to say this variable must be a string or this variable must be a number. That type of thing wasn’t possible before TypeScript. What that has enabled us to do though is to write applications and code that transcend our team and another team can consume it and they have the necessary checks and balances written right into the source code that helps them prevent simple mistakes. Like they won’t accidentally assign a number to a string and then add that together and get a weird experience.

Carlos: Let’s think of a large team environment like a proper team where you may have backend engineers and front end engineers. How do these teams work together to be most efficient while building products in Angular or React or Ionic or any of the new frameworks?

Jeremy: We’re building out, kind of the big push that we’re doing at the moment is this platform of things. We’re trying to create a baseline where everyone will have a similar foundation to begin on. We’re going to leverage MPM and different ways of bundling things together so that the basis of the application is consistent across our applications.

The custom things, those will be up to the other teams, but when we have multiple teams working on different projects we still want a sense of consistency. That’s also in not just the way it’s coded, but also the look and feel. We’ll provide themes and things that will help enforce the way that that is implemented.

All that tooling is a big thing for us. Also this platform is going to create a set of base components that everyone can leverage. We write them in a way that they’re very extensible. Anybody can configure them quite a lot. It’s not just a very black box thing, but we give them the options that we want to as much as we can with these base components. Things like we allow a base layout component that helps that out. Do you want a page that has a side nab and a toolbar? Or do you want a toolbar but no side nab?

We have ways of making that very easy, sort of everyone implementing this over and over on their own in maybe slightly different ways. We have it consistent. We find the more people, the more teams that we have, there’s a balance eventually that you’ve just got to start working against. There’s going to be custom things that need to happen, but the more that we have a solid configural foundation that’s well tested, the better the rest of these teams and individuals are able to work with our entire suite of products.

Conclusion

Carlos: This has been an amazing interview. I think we’ve got an entire overlay of what this living within the framework looks like, but so now I have three questions for you that I think are kind of interesting for those who are beginning or who are less experienced. What advice would you give your younger, less experienced self about your software engineering journey?

Jeremy: Oh, something came up several times recently with conversations I’ve had with people about, and particularly when we were talking about the differences between Angular 1 and Angular 2. It stems down to having a serious background and knowledge of not just how to build a Javascript application, but how an application in different languages and in different environments are created.

A lot of things are common and best practices, not always, not every single thing will be common to every single application, but I’ve learned a lot by recently spending more time and learning new languages, learning new platforms. For example, I’ve learned the Go language to a certain degree and that has opened my eyes to a lot of things as well. I think some of that has strengthened my abilities in the front end as well. I think that’s a big thing would be to just make sure that you learn core programming principles whether or not they’re for front end or not.

I’ve said this a couple of times I think where front end development for long time was more like scripting or coding where, I’m going to make a distinction between two terms that maybe isn’t real, but in my terminology it’s sort of like I used to code, perhaps you spend a lot of time cobbling together snippets of code to make a front end. Whereas today in quality applications, they need to have rigorous software engineering behind them. You need to make sure you have testing built into it. You need to make sure that you have design patterns that make things separate and concise and modular.

Those things are less optional than they were even just a few years ago so building quality, those things really do depend on understanding programming paradigms. Whether or not you studied Computer Science or not you need to spend some time and dig into those things. The Gang of Four, the pattern book that they have, spend some time. Look at all those. Those things may not always be useful, but there are a number of things that you can learn about how to think and inspect what you’re doing from a more critical mindset instead of just plugging away and chucking code into the page and hoping it works.

Carlos: Yeah, it’s a little bit of bringing the engineering mindset into being or versus the dev mindset which is something I always think is very important. I see a lot of people coming out of boot camps, “Oh, I’m a dev now.” In reality that’s a shallow layer. I think bringing in those engineering principles, yes, it’s very important. I agree with you wholeheartedly.

Jeremy: I should say I don’t have a Computer Science background, so this is something that I had to spend a lot of time and energy on. I know people who have that background, but it was focused on one area. You need to spread out and look at different areas and learn different languages and it’s not necessarily that you need to be proficient and even try to find jobs in that area. You just need to spend time with several different things.

Carlos: Understanding.

Jeremy: Yup.

Carlos: Just understanding concepts, right? Basics that will strengthen your … Again, like you said you spend a lot of time with that. That’s probably one of the main reasons or one of your foundation of why you’ve been able to go so far into what you’re doing is because you have that strong foundation.

Jeremy: Certainly. I’m always learning additional things. I’m learning a lot of ops related things with Docker and Container and things right now which is a whole new world of things. It does affect the way that we design and build our applications as well, so it’s not just programming things, but it’s also understanding the environment in which your application is deployed and built. Understand the database. Understand how the build process works. If you can work with that kind of stuff you’re going to be much more valuable and much more capable.

Carlos: What are some books you’d recommend for that person you just gave some advice to? Outside of your own which we’ll talk in a little bit.

Jeremy: Yeah. Actually I wouldn’t recommend my books for those because mine are focused on a narrow set. I don’t have a specific book. I think it kind of depends on what you’re interested in. If you have a cursory interest in learning a little bit of Python look up on Amazon. I don’t know what the top Python books are, but pick something that interests you to enough degree that you’re willing to put some time and energy into it.

Maybe you have something that you can do at work that’s a side project. It’s not critical that you do it in a certain amount of time, so maybe you can learn something new along the way while you build out this new test system or something like that. I found a lot of opportunities to do that and that’s where I learned much of what I’ve done.

I suggest checking, I don’t know what the types of books are, but find what’s most interesting to you. Don’t just go out and read a book because oh, I’m supposed to learn Go or I’m supposed to learn this because it’s the new hotness. You have to have an interest to really dig into it, especially if it’s not something you’re being forced to do. That would be how I would go about it.

Carlos: Man, this has been a very cool interview. I think we have enough depth that we’ll give people that know what you’re talking about enough information to go on their own, which is really the purpose here, right? Then also enough basic information so that those who don’t understand these concepts yet might get pulled into this world. Once again I want to thank you so much for coming on the show.

Jeremy: My pleasure.

Carlos: I’m really honored to have you here. Like I said at the beginning, you’re somebody that I admire and respect big time. I hope we can do some work together in the future. Again, I’m very happy to have you, but of course, which is probably the most important question, how can people find you and your work and give me a little bit of, give me the names of your books and how can people find them.

Jeremy: I am on Twitter at Gnome On the Run, G-N-O-M-E. It’s not like Band On the Run or anything. It was my consulting business for years. Just kept the name. I like it. That’s kind of me. GitHub, the same thing. That’s my account probably across the web so if you want to track that, you can. My books, the Ionic book is Ionic in Action. That’s at Manning.com. You can pick that up or IonicInAction.com as well as Angular 2 In Action which is also at Manning.

Then the other book that I’m working on that I’m really looking forward to, I really want to get more community involvement in so if you’re interested in even just providing questions or feedback on this is good or this is bad, I don’t get it, that kind of thing, the book is at JavascriptForAngular.com. I’m writing it on GitHub so you’ll be able to open pull requests or GitHub issues in order to contribute in some way, whether it’s just asking a question or actually writing some stuff for me to help fill out that book. I’m still in the early phases there, still planning out chapters, but hope to be getting things together there in the next few weeks.

Carlos: All right, and we’ll have all of those in the show notes if anybody wants to check it out. Jeremy, once again thanks you so much for coming on the show.

June 23, 2016 / Comments Off on Building Engineering Organizations with Doc Norton from CTO2

Hello, Tech People.

Today I’m joined by Doc Norton. Doc Norton is the CEO of CTO2 and is an authority in the technical space. CTO2 utilizes systems thinking, organizational psychology, and complexity theory to help you transform your entire organization. From recruiting and talent development, to engineering and product development, to sales and marketing.

In my time with Doc we discuss his background, Organizational Agility, what a proper engineering team looks like, hiring, Doc’s theory of “Jungle gyms and not ladders, organizational structure, one-on-one meetings and the “Shock and Awe technique”.

We are honored to have such an interesting person on our show this week.

Related Links:

Show Transcript

Carlos: Thank you for tuning to Tech People where real-life tech practitioners share their professional experiences. Hello, Tech People. Today, we have Doc Norton on the show. For those of you who don’t know who Doc Norton is, he is the CEO of CTO2 and he has a very deep thought leadership authority in the technical space. I’ve seen Doc speaking at multiple conferences. I’ve been lucky enough to be in a few of his talks, and since the last one that I saw you in Philly, I thought you’d be a great fit for our podcast. Doc’s focus is around helping engineering teams improve delivery and essentially build great engineering organizations. Doc, thank you so much for coming on the show.

Doc: Yeah, absolutely. Thanks for having me.

Carlos: How are you doing today? How is life?

Doc: I’m doing well. Life is good. Keeping busy and slowly but surely changing the world. It’s what I’ve set out to do.

Carlos: Very cool, very cool. Last time we spoke you were planning or dealing with a few important talks. How did those go?

Doc: Very well. Very well. Yeah, this year especially has been really great for me in terms of the speaking opportunities. I’ve been talking for a long time, and over the course of the last couple of years, I’ve been able to start moving a bit from focus on hands-on keys technical practices into more talking around leadership and agility and organizational agility. That’s been just a great journey for me and a lot of fun.

Doc’s Background

Carlos: All right. Tell me a little bit about your background. I know that you come from a very deep engineering background, so tell me a little bit about that. Also, how did you end up becoming a speaker, adding to this thought leadership in the space?

Doc: Background? I’ve been in software development for about 30 years. I’ve worked in a number of different languages and a number of different methodologies on many different platforms. COBOL, RPG, assembler, C, C++, yada, yada, yada. I’m just moving on into some of today’s technologies. I would say in the mid to late ’90s, I had started my own company. We were doing custom software development, and internal to the company, we were doing some interesting things.

We had started to actually do this thing we called shadowing where when someone came on to the company, rather than putting them on a job right away, we would have them actually sit with one of our other developers and learn just how do we do things around here, how does this stuff work. We were working a lot with customers on actually having feedback cycles throughout the delivery process, et cetera. In 1999, I think it was October of ’99, the XP Explained book came out. I picked it up in December and read it, and it just absolutely resonated with me. That was my, I guess, formal entry into agility.

Fast forward a couple of years, I sold that company and was actually in a conversation with Corey Haines, I believe, talking about different practices, different techniques, craftsmanship, that type of stuff. He and I were discussing technical debt and what we thought that meant and what Ward meant by that. That turned into a couple of blog posts for me, which turned into actually the first real public talk that I gave. I had been trying to retire that talk for about 10 years, but it still keeps getting requested. Fortunately, for me, that’s actually led to some other stuff where I’m now doing a series with Clean Coders on technical debt. That was the foray for me into public speaking. It was just a topic that I thought was important that we as an industry had come to misunderstand.

Carlos: That’s pretty interesting. Basically, out of a conversation with a friend, you came about a blog topic, but how did that … you writing it, did you have an audience? How did you get invited to speak about that? I’m just curious, by the way.

Doc: No, that’s cool. That’s cool.

Carlos: A selfish question here because I’m interested in this.

Doc: At that time, it was definitely different for me. My blog was relatively new. I’d probably been blogging for a little more than a year. I didn’t have much of a following, and it wasn’t very well-directed. It was just whatever I was thinking about at the time. When I actually started writing about technical debt, this was something that I had a little more direction and purpose around it. It wasn’t just talking about the latest JavaScripts tool that was available or whatever. It was something that I felt like would resonate more with the entire industry.

I actually started submitting to conferences, a lot of smaller regional conferences, just trying to get any opportunity to speak. That led to getting accepted at larger conferences which over the years has resulted in a lot of my speaking opportunities today comes through invitation, which is just amazing and so fortunate for me to be able to have found my way into that space. Yeah, when I started off, it was local conferences, submitting, hoping I could get in, volunteering at conferences to get to know the organizers a little bit better to increase the chances that maybe next year they would consider you as a speaker.

Carlos: Right. That’s interesting, but I’ll just stick to our topic. I apologize for going off topic because this is something I’m trying to expand in my own world, is the speaking side, so I’m very interested in listening to that. What is it that you do these days at CTO2? I know that that’s also one of your main focuses.

Doc: Yeah. CTO2, we are a process and leadership coaching organization. I say process because for us, what we’re focused on is software delivery, but our focus isn’t on agile by some prescriptive form or lean or systems thinking. It’s combinations of all of those things. Going into organizations and helping them really get better at the delivery of software, and ideally focusing not just on the teams, which we often tend to do, but on the entire organization. How are we structured? What does our governance look like? What are the rules? How does work flow through the entire system?

Some of that is just derived from my own experience as a coach, especially an agile coach for years, where what we fairly consistently found was we could go into organizations and we could really improve the acumen of the engineering team. We could get them delivering sooner with higher quality, but there was all of this tension from the rest of the organization because now you have this microcosm that is operating in a different way, much more iteratively, much more flexibly, with greater agility. They’re surrounded by an organization that is still a little bit slower, more lumbering, a little more rigid, and so often times we’d see that when the coaches left within 6 months, things would regress back to the way they used to be. We really looked at it and said, “What actually needs to happen here is we need to not just focus on engineering but on the entire organization so that this actually can sustain.”

Carlos: All right. Well, let’s find some ways to help these people. We essentially try to use around 30, 35 minutes of interviews to keep them short so people don’t get bored, I think, within this condensed time, but here’s the thing. We’re going to be able to help somebody, which is really the goal.

Doc: Right.

Organizational Agility

Carlos: The goal of our interview is to help engineering leadership either build a better engineering team or improve their existing ones through the concepts that you strongly advocate for, specifically, organizational agility. Again, let’s try to help these people. First of all, can you define, and I think you had already did a little bit by defining those pain points, but can you define what organizational agility is?

Doc: Yeah. When we think of organizational agility, really, what we’re talking about is helping companies structure themselves in a way that agility is enabled throughout. Looking at HR approaches and policies, looking at the way that we actually fund projects, as well as the way that we actually flow work through teams. The idea is to create an organization where the entire company really is agile, learning, not just engineering.

Carlos: How do you think, though, it affects the outputs of that engineering team? If we’re talking exclusively, or not exclusively, but if we’re saying we’re trying to improve an engineering team, how does organizational agility help that engineering team? Does it make sense? Is it by getting more support from the top down? Does it leverage some of that?

Doc: Some of the things you would see in an overall agile organization, there are things that actually are different from what you might see in other companies. One of the things that we really work on is moving decisions to the people that are actually doing the work. We’re thinking about the way that decisions actually get made in an organization, what direction does information flow, so it actually gives the teams a lot more autonomy and a lot more flexibility to make decisions about the way they do things on a day-to-day basis. We’re looking at the way that we actually finance, so rather than funding an entire project for a year at X million dollars, look at your projects, or products even more ideally, as investment portfolio. Start thinking about if you’re putting money in but not getting a return, would you continue to make that investment? It changes the way that work flows through and actually allows the teams and the entire organization to be that much more responsive and that much more adaptive.

What does a proper engineering team look like?

Carlos: All right. Let’s look at a dream scenario. What does a proper engineering team, or let’s say a happy team, look like? What are the results and outputs?

Doc: Yeah. Just the composition of a team, I very strongly advocate for a wholly contained team. What I mean by that is everyone you need to get the job done is on the team. If you have these separate actual functional roles of design, developer, QA, analyst, architect, et cetera, they’re all on the team. The team is responsible for a particular product or a particular clearly defined aspect of that product and then can work as a collective towards that common end, that common goal. In a lot of organizations, we just don’t see teams that are even structured that way.

Then within the team, they have a lot of autonomy to decide how it is they actually approach their problems, so we want to be careful. Within the organization, you might want to have a guideline that says something along the lines of, “No code can move to production unless 3 people have reviewed it,” but what we want to do is allow each of the teams to figure out in their context what is the best way to apply that guideline. Some might do poll requests with reviews, some might do pair programming or even mob programming, some might do formal code reviews, but each of the teams has the autonomy to decide how they’re actually going to execute.

Carlos: I see why it might be tricky for some of the leadership to like that because they want some sort of order, but I’m sure that this chaos creates its own order.

Doc: Yeah. The challenge is that … When you look at a reasonably sized organization, there are all kinds of work that are actually going on. Different teams have different contexts both because they have different levels of skill and capability within the team, but also because of where they are in the product lifecycle, et cetera. You’re going to have some teams that are very early in a product stage, and the way that they actually can function differs from teams that have a very mature product that requires a lot of support. If you set these standards that everyone must behave exactly this way …

A good example is a lot of organizations say, “Okay, we’re going to do Scrum.” That means that everybody has 2-week iterations, these time boxes, you’ve got to make commitments, et cetera, et cetera. What ends up happening is that some teams really flourish under that arrangement and then other teams are just constantly floundering. If you look at it, it’s because they have high failure demand, so there’s a lot of rework that has to happen in the code, and there may be many, many reasons that that occurs, it is a highly utilized product, and so there’s a lot more support coming from customers, there’s a lot more change demand that’s coming from the existing user base versus new products. You’ve got to be really careful to not over-standardize the work. We are designing new things. We’re developing new things. It is complex work. It is not easily standardized, and it’s actually not smart to do that in a lot of cases.

Hiring

Carlos: All right. Let’s talk a little bit about hiring because hiring is probably essential to building a team. Let’s say you’re building a team from scratch. Let’s say it’s a new company, or it’s an existing company that needs to build its own team in a certain way, stop doing it in the old way. What is the most important advice in regards to hiring in this agile or with organizational agility in mind?

Doc: Yeah. I think really, what’s important in hiring across the board, whether it’s an agile organization or not, is finding people who can be effective and flourish in your environment. What’s hard about that is sometimes it’s very difficult to actually articulate what our environment is. A lot of organizations, we want to interview for culture fit. Well, what does culture fit mean? If it’s not well-defined, what culture fit means is I get along with you. What that leads to, unfortunately, is homogeneity. The team becomes very similar to one another because they all instantly click and get along.

That sounds like it might be a good idea, but you end up with group think. The lack of diversity means that you’re not really getting the most creative ideas, you’re not getting the best solutions to these complex problems. What you really need to be doing is, organizations seem to think very clearly about who are we, what’s the mission and then purpose of the organization, how do we do things around here, how are decisions made, and then really help to interview for and identify folks that would do well in that kind of an organization.

I try to be careful not to ask directed questions. If you ask someone, “So we’re an agile organization, and we follow Scrum guidelines. Would that work for you,” well, that question is leading them … You’re basically letting them know that they’re supposed to answer that yes. What I would tend to do is ask something more along the lines of, “Share with me one of your most rewarding work experiences, and what about that made it rewarding?” Listen for what the candidate is volunteering about what they think is important at work, and does that match the way you guys operate?

Carlos: That is very insightful. Yes, because you might want to push people to say yes to something because of just the way that you’re asking it.

Doc: Yup.

Carlos: Something interesting that I want to expand on, should teams avoid hiring only people that they gel with on a personal level or on a “getting along with”? How important is that and how much of an impact should that make in the hiring decision?

Doc: I think it’s something that we accidentally over-optimize for that we tend to hire people that we feel comfortable with, that we gel with, that connect with us right away. Again, the problem there is what ends up happening is the team begins to self-select similar people and you don’t get the diversity that you need. Diversity in this case is diversity of thought perspective background, right?

Carlos: Right.

Doc: We’ve got to be careful to not have that happen. At the same time, we don’t want a team where everybody can’t get along.

Carlos: Right. It has to have a good balance.

Doc: Right.

Carlos: How can we tell from early on if somebody might not be a good fit? What’s one telltale sign?

Doc: Early on if someone might not be a fit? I tend to talk about or look at how do we actually make decisions in the organization. Does data bubble up to an authority figure? Does the authority move down to the folks that already have the data? Am I allowed to just make a decision and move forward or do I have to get advice from others? If we know how we actually make decisions in the organization, we can fair it out if people are comfortable or can be effective in that type of an organization. It becomes more about, “Can you operate in an environment where decisions are made in this way,” rather than, “Do you and I feel like we could go get a beer together after work?”

Carlos: Yeah, it’s one of those things that it gets tricky because as you said, the person that is hiring might feel that personal connection with.

Doc: It’s okay to have it. It’s perfectly fine. It’s just, we shouldn’t be optimizing for it necessarily. Without any other definition of culture fit, that ends up being our filter, is, “Do we get along or not?”

Carlos: Got it.

Doc: It’s great if everybody gets along, but that shouldn’t be the primary selection criteria.

Jungle gyms and not ladders.

Carlos: In the past, you’ve also spoken about … By the way, this is probably your own concept, so you might have to explain or define it. “Jungle gyms and not ladders.” What is this concept about and how does it impact our hiring process or team building process?

Doc: Yeah. This is a relatively old post, but it’s a thing that I absolutely still agree with, and I’m actually starting to see organizations that are doing something along these lines. All right, so jungle gyms, not ladders. Organizations typically … We get to a certain size, and people want to know what their growth opportunities are. What we do is we go look at some Radford scale or something along those lines and we create these formal job definitions that say, “Okay, well, right now we’ve decided you’re a Depth 2. Your next step is a Depth 3, and to get there, you have to achieve these specific things. Then it’s Depth 4, and then senior, and da, da, da, da, da.” If we’re lucky, the organization has a past that I can either stay as a technical individual contributor and make my way up to architect and senior fellow or whatever, and I might be able to switch to management.

Those are ladders. They’re better than nothing, and they give us clear direction, but what they fail to do is actually take advantage of the fact that people are multifaceted and have many skills and many interests, and fail to recognize that on average, people have 2.5 careers in a lifetime these days. If we look at something different where we say, “You know what? Here are all of the competencies that are relevant to our organization,” and your compensation is based on your competency aggregation. “I am really good with Java, but I also happen to be pretty good at doing some design, and I am a really good meeting facilitator.” Those things don’t necessarily fit into any one of these job ladders, but they’re all important to the organization.

I now have an opportunity to build my skills in any way that I want, broad or deep, have that be recognized, and have my compensations actually match with that. If we look at Teal Organizations, which, if you want to know about that a little bit more, Reinventing Organizations by Laloux introduces that concept, many Teal Organizations have these types of compensation systems. Management 3.0, which is Jurgen Appelo stuff, talks about these types of compensation systems and these types of job descriptions, definitions. Companies are actually getting rid of job descriptions and ladders altogether.

Carlos: Right. That’s pretty interesting because it’s almost like the … When you started talking about that, it made me think of … Well, there’s the word “gym”, so I started thinking of the auxiliary muscles of like when you’re bench-pressing, you have different muscles that are still working. They’re not the primary muscles.

Doc: Yup.

Carlos: It’s the same thing, is you have these other skillsets, these are skills that add to your skillset, but even though if it’s not your primary job function, it does make you be a stronger employee or a stronger professional in essence.

Doc: Yeah, absolutely. Absolutely. The reason I chose jungle gym over a ladder was you still climb them, but you can choose to go laterally, you can choose to go vertically, you can navigate around other people who are on the jungle gym and in your path, whereas on a ladder, you really can’t do that. If somebody is above you on the ladder, until they move, you can’t move, and that’s very common in organizations, but if it’s a jungle gym, then you can move by shifting horizontally. Building out your skillset in something other than what that person does.

Organizational Structure

Carlos: All right. Let’s jump a little bit into a little bit of the organizational structure. When I think of organizational structure, I think of the overall business, which I think you also cover a lot of the overall company, but if we zoom in into the engineering team, how does this organizational structure or let’s say an agile organizational structure model fit into an engineering team?

Doc: Yeah. I think there’s a couple of things here. Some of this comes down to the type of work that you’re actually doing within engineering, but as we look at the type of work that we’re typically doing, we are doing one of 2 things. We are either building something that is truly known, or we are designing something new. We have a concept, but we don’t really know what it’s going to be. In both of those cases, we really, in order to be successful, we have to rely on the experts to apply their skills and knowledge to make this work.

If you think about how you might run a food line in a fast food restaurant, the manager can know all of the jobs and can do all of the jobs. When you get into software development, the manager may understand all of the jobs but does not have the skill to actually do all of them, so you have to rely on the people to actually think for themselves and do that work. This means that the structure itself needs to start to change. The more complex the work is, the more you need to rely on the experts, the less the manager is a decision maker and the more they are a facilitator, a coach, a mentor.

I don’t even want to say in extreme cases because I think it’s actually a very effective way to approach this type of work, the organization ends up flattened. You basically don’t have the hierarchy anymore. You have small autonomous teams that are working, and they create a network of small autonomous teams that all work together. Leadership looks very, very different in those organizations, and I think that is a very effective way to structure for true agility. If you actually look back at the XP team, early Scrum teams, in their own way, that’s much of what they were doing.

Carlos: Right. Question, though. How do we use some of these tools? For example, and these might also be from some of your older blog posts, but I know that they’re essential to this work, is one-on-one meetings. Why are they important?

One-on-one Meetings

Doc: Yeah. One-on-one meetings, that really fits in when you’re in more of a … it fits across the board. In a classic structure, so hierarchy, I’m reporting to a manager, one of the things that we find in organizations like that very consistently is individuals don’t get enough feedback, don’t have enough opportunity to actually express themselves, and don’t necessarily understand how their work applies to the bigger picture or what it is that they’re supposed to be doing on a day-to-day basis. They know what the tasks are, but they don’t see how it fits in the big picture.

One-on-one meetings are not about the individual giving a status report to the manager or the manager redirecting feedback to the individual. It is about the individual and manager having a conversation to really get a shared understanding of where am I as an individual in my career growth, where am I going, how is what I’m doing valuable to the organization. It’s just something that a lot of companies, either they’re not doing them or they’re doing them in a way that they don’t provide sufficient value.

You start getting to a more flat organization where now maybe there isn’t a manager necessarily that you report to, but you are accountable to your team overall. Those one-on-one meetings, the format changes a bit, but there’s still extremely important opportunity for the individuals on the team to get together and develop a stronger relationship, to share what they’re thinking in terms of where we’re going as a team and a collective. It’s just a great way to keep connection and communication high.

Shock and Awe technique

Carlos: Also, one of the things that you mentioned in one of your articles that I thought was interesting that sounds a bit scary in a way, it’s this Shock and Awe technique. What is it?

Doc: Okay. Shock and Awe actually is a anti-pattern. When I refer to Shock and Awe, what I’m actually talking about is, in an agile coaching context, I often see coaches come in and basically say, “Oh, hey, you guys are going to go to agile. When I look at agile, it means that you have adopted all of these behaviors. What we’re going to do is we’re going to change everything all at once just to get you there quickly.” Some of the ideas are like, “Well, change is hard, so let’s just do it in one big sweep, and then we’ll get it over with.”

What actually happens when you do basically Shock and Awe is it’s very difficult for the team to absorb all of that change. It’s difficult for them to actually understand what pain was resolved by each of the smaller changes. Often times, what you end up getting is behaviors that are more about compliance than a deep understanding of what are we doing and why. Shock and Awe is actually a technique that I advise against using but see very often from different agile coaching companies. I’ve actually had clients, they haven’t said, “We want Shock and Awe,” but have said, “We’d like to contract with your organization to come in and do exactly this.” I’ve actually refused to take the contract because, while I will make money, it won’t be successful.

Carlos: Interesting. Well, yeah, because it’s like they don’t want to go through the process of explaining the benefits, so it’s just a little bit of “My way or the highway” type of thinking.

Doc: I think so. Some of it, again, is just that, “Man, we’re going to be changing so many things. Change is hard. People get fatigued. If we just change it all at once, then it’s just over with and we can move on,” but change doesn’t normally work that way. You might be able to get away with a Shock and Awe technique where you just change all the things if the company is in a very dire situation and everyone involved knows that it’s in a dire situation. If we basically know like, “Holy mackerel, we have to change right now or we’re going out of business,” then it might be successful, but most companies aren’t in that position.

Carlos: All right. Well, those are, I want to say, 2 tools. I don’t know, I wanted to call them methodologies, but I think that’s too broad of a term for that.

Doc: Yeah.

Carlos: What other tools can we use to keep our teams motivated and engaged and being able to change when change is needed?

Doc: Yeah. I think really, autonomy is very important. I think being able to really give the team the ability to actually make decisions and make changes on their own. One of first things I usually try and teach teams is healthy retrospectives. What we want to see come out of that retrospective is basically, at some regular interval, we take a look at how have we been performing, how are things going, what might we want to change. We’re constantly taking a look at the way we do things and seeing if we can improve upon them.

Having that autonomy, that flexibility, the team actually having the ability to say, “Hey, you know what? I feel like our daily stand-ups aren’t getting us the value that we really need. Let’s try making a change to them. Let’s change up to 3 questions,” or whatever the suggestion might be, that actually helps people stay very motivated and engaged, having influence over the way they do things. Simple things like really helping teams see how what they’re doing adds value not just to the organization, not just about, “Yeah, man, every time you guys do this, we make more money, and that makes the shareholders happy.” Most of us don’t actually care about that. What we actually care about is the small business owner that is using our point of sale system and it allowed them to improve their profits and keep the doors open or those types of things. Actually sharing success stories back into the organization can help folks stay motivated, help folks stay engaged connected to that bigger picture.

Carlos: Right, and feel more engaged to the real thing, not just following orders.

Doc: Yeah, absolutely. We do a lot of work with organizations around collaborative decision making, ways to help teams actually make decisions, because often times, now we’re a self-governed team, but we don’t have experience making collective decisions, and so it ends up being a lot of … It either takes a very long time