Developing Coders: Will Gant

Note: This is the second part of the interviews to the Complete Developer Podcast hosts. Read here BJ Burns interview

In the Complete Developers Podcast, William Gant is described as the more experienced developer of the duo of friends. His career spans over two decades as a developer. In the show, he shares with his friend BJ Burns the lessons he has learned along the way related to code, and dealing with customers and teammates. In this interview, Will talks about his experience, how he started the podcast and some advice for developers.

Why did you decide to become a developer? Did you know that since you were in school?

I was initially going to be a Biology major and I got really interested in biologically inspired computing algorithms, like gene expression programming, that kind of stuff. Once I got to college I double-majored, and the computer classes were late in the day while the biology classes were early in the day. Those two lifestyles just did not go well together, and so, one of them had to go (laughs).

What were some of the first programs or things you learned as a developer?

I started out with GW-BASIC. This was way back in the early ’90s. Then I got into Visual Basic for Applications, then just regular Visual Basic, and ended up moving to .Net when it came out. I’ve been mostly doing that. I had foray into a bunch of other languages. I’m always trying new stuff out, seeing what ideas I can take from another platform.

As far as programs, the first one that I wrote and felt worked really well, was actually a prank. I made a program that could take a screen capture of somebody’s screen and put it flipped upside down with an upside down message box that says “Windows has detected that your video card was installed upside down.” I made it in the background of my uncle’s computer where my dad could hit a button and do that to my uncle at random, because they worked in the same office. He wasn’t real happy about that (laughs).

As a developer, what do you think are some of the misconceptions of people from development or developers?

I think a lot of people have an incorrect understanding of the difficulty level, either thinking it’s more simple than it is or thinking that it’s more difficult. There’s a broad range of difficulty levels in the industry. (As a developer) You kind of get into the habit of breaking stuff down to where it’s simple enough, where you can actually deal with it. A lot of people aren’t aware that that’s what you do versus solving a huge problem. It’s sort of like, ‘how do we fix the transit system in Germany’? You don’t start with, ‘I’m going fix the transit system in Germany.’ You go, ‘I’m going to dig a ditch right here, and then work my way through.’

I would also say a lot of people just generally don’t understand how you give instructions to a computer. The way I’ve always explained it is: imagine if you had somebody that took everything completely literally and didn’t have any external source of information. How would you explain stuff to them? That’s the way you’d explain it to a computer.

People have seen all these hacker shows, they’ve seen like, the guy in The Matrix, with the characters going crazy on the screen, and they think that’s what we do. I mean, it would be cool and all, but you know, we don’t.

“A lot of people just generally don’t understand how you give instructions to a computer. The way I’ve always explained it is: imagine if you had somebody that took everything completely literally and didn’t have any external source of information. How would you explain stuff to them? That’s the way you’d explain it to a computer.”

For anybody who wants to become a developer, what would you recommend to get started?

I would probably work backwards. I would start with, ‘what kind of development do I want to do’? If they’re doing web development, there’s probably not a whole lot of reason for them to go through a degree program, just because it’s overkill. The technology is going to be old. If you’re doing typical business programming, you might want to get an accounting degree and minor in computer science, or vice versa, so that you know what’s going on there. It’s not a discipline that lives by itself. It’s always attached to something else, and that something is not necessarily technical related.

Why did you started a podcast?

BJ was going through a pretty rough phase in his life when we started the podcast and I had taken him on as an apprentice. I was teaching him how to do software development so that he could get his financials back where he needed to be. He suggested the podcast idea, and I actually didn’t think it was going to work, but I went along with it.

I bought the microphone and thought, ‘okay we’ll probably do this for five or six episodes, then he’ll get bored and I’ll have a nice microphone.’ We’re like 170 episodes in now and that’s obviously not happened. I would say that it’s pretty darn near accidental when you think about it (laughs).

I didn’t realize how much I would enjoy it either. I thought that talking into a microphone was something that was going to intimidate me and that I was going to find really uncomfortable. I did for a while, but now, I’m not. I used to be painfully shy, and I’m completely over that now.

How do you come up with ideas for the show?

If you brainstorm on creative stuff for long enough, eventually, you realize that you’re swimming in ideas. In the beginning, it was tough. I did not know if we were going be able to come up with ideas for a podcast each week, and now I think we’re like 150-something ahead. We could go for like another three years with no new ideas and not run out of material.

In the podcast you mention that you’re an aspiring software architect, is that something you’re still pursuing?

We put that in the beginning of the podcast as my introduction because that was kind of my goal then. I think before the first episode, I actually got promoted to that at work. I deal with a lot of the software architecture, just like big picture design of the software: how we’re going to scale, how we’re going to accommodate major software changes going forward, how we’re going to make our team be able to develop faster, that kind of stuff. It’s fun! It’s the hardest code too, so it’s the best.

How is your usual process when it comes to development?

The first thing I’d recommend is figure out who the real stakeholders are, because a lot of times you go in and the person you’re talking to is not really the one that’s got the authority. The next thing would be to see what things have to get done and what’s the priority level like. What do the delivery milestones actually mean? What real result does that create for the company? A lot of times, what you’ve got to do is shuffle things and go, ‘well, I could hit a milestone that’s not quite so ambitious, but it’s 20% of the work and it gets 80% of the result. I can do that right now and get them into a better place.’ That’s’ usually the way I look at it.

I don’t know that the tech is necessarily the most important thing. The tech is how you deliver it. The process is how you figure out what to deliver.

Is the show targeted particularly for developers?

Yeah, it was initially for developers. Then we started getting a lot of people that weren’t developers who were listening, and we started realizing, ‘hey, we’ve made content that’s kind of bigger than just development.’ That happened organically.

Do you apply any of the things from your job into your personal life?

They kind of bleed over into each other. Since I’ve been doing this for so long, I’m not sure exactly where the seam is anymore. The way that I have to manage multiple projects, I’ve found that I use that in the kitchen on Thanksgiving morning. I don’t think twice about it until the end of the day and I’m like, ‘wait, I just did a Gantt chart for making vegetables’ (laughs).

I don’t know if it’s maybe an overly organized personal life that has gone over into work or if it’s the other way around. I wasn’t an adult when I started writing code. The first code I got paid for was 20 years ago this week.

What was it, what did you developed?

I was just helping a friend of one of my programming teachers with a development problem that he just could not figure out. The teacher was basically like, ‘hey, I’ve got this kid in the class, he’s a giant nerd, he can probably help you, and he’s probably cheap.’ And it worked out!

What resources have helped you in your job, either books, podcasts or websites, or anything like that that you would recommend?

Other than our stuff, anything by John Sonmez. He’s got simpleprogrammer.com. He’s also got a book called The Complete Software Developer’s Career Guide and a book on soft skills. The coding stuff is almost the easy side of things, but the interpersonal things in figuring out how to work well with a team, seems to be a spot that a lot of people really need a lot of help on.

If you’re getting into the hard tech, the Gang of Four Design Patterns book, Code Complete , Clean Code. There’s also a good book called Don’t Make Me Think, which talks about how you design things. As far as organizing things, I would probably look at Getting Things Done, by David Allen. I have a modified version of that system. It doesn’t work perfectly for creatives, but it works well enough as a start, and then you can fix it once you find the problems. My to-do list has like, 800 items on it right now. So, I have to have organization or I’ll go crazy.

Do you have questions, feedback or suggestions of people to interview? Contact me! 

A Developer’s Journey: BJ Burns

If you are a developer, aspire to be one, or simply want to understand this field,  the Complete Developer Podcast is a must-listen. Topics of the show have ranged from coding best practices, optimizing algorithm, surviving boring meetings, improving your listening skills and how to talk with non-techies.

Hosts and friends BJ Burns and Will Gantt, began this show as an experiment after people around them, entertained by their banter when discussing development topics, prompted to do so. Will is the more experienced developer of the two, while BJ focuses on sharing “his journey as a journeyman developer,” as he states on the show.

A few years ago, BJ was on his way to finish medical school until a personal heartbreak changed this. With the help of Will and other developer friends, BJ’s career and life took a turn. In this interview, BJ explains his journey to become an Advanced Software Engineer for the State of Tennessee, and gives insights on the development of this successful podcast.

Note: See here Will Gant’s interview. 

Did you started college as Pre-med or Psychology?

I majored in Psychology; while I was getting my masters in Psychology, I was working at a psychiatric hospital and decided that instead of getting a PhD in Counseling, I wanted to get a medical degree to do Psychiatry. I was working at an addictions unit, helping people who struggle with addiction who also have mental health problems. What I wanted to do, at least at that time, was to get into that world and be a medical doctor that could help people with their addiction and their psychological issues.

How did it evolve eventually into going into computer science and development?

It actually started before all of that. When I was in high school, I took three years of programming classes. When I first started, QBasic and Turbo Pascal were the languages that were offered in school. In my senior year of high school, they decided to upgrade to more modern languages. I got Visual Basic and C++. I got the opportunity to do that, and I loved it. I thought that’s what I wanted to do for a living.

When I graduated, I was planning on going to college to be a software developer. My mom, who is a nurse, at the time was head of a foot and ankle clinic in town. One summer in high school, her secretary took time off to go have surgery. So I worked at the clinic with my mom at that time. All the doctors kept coming and showing me things and saying, “Hey, this is really interesting.” I got to sit in on surgeries and procedures. For a really nerdy kid, it was a dream come true because I got all these very intelligent doctors wanting to teach me and show me what they were doing. I just sort of fell in love with that. So when I went to college, I started off pre med. Then I took a psychology class and decided, “Hey, I like talking to people, so I want to go into this area of healthcare.” I pursued that all the way up to medical school.

What brought me back around to development was that in my third year of medical school while studying for board exams, my wife at the time decided she did not wanted to be my wife anymore. She had the divorce papers delivered to me while I was studying for board exams, and I did not pass for obvious emotional reasons. It was a bit of a surprise to me, and then I had to go in front of the promotion and matriculation committee. I explained to them everything that was going on, and why I didn’t pass my board exams. They basically told me to take some time, get through the emotional side of it, get through the divorce, and look at coming back to school later. I left med school then moved back to Tennessee.

image3-2.jpeg

Medicine requires a lot of focus. You spend six to eight hours a day in a classroom, and then another six to eight hours after you get out of class studying. To go from that sort of lifestyle to have nothing to focus on; all of my focus went on to all the bad things going on in my life. I was getting very depressed and so my friends, who were developers, were like, “All right, we’re going help you, we’ll give you something to focus on”. So they started introducing me to different programming concepts. I think they started off with this online game where you wrote JavaScript to move the character around.

Within about two or three months, I had gone from that to looking at some different tutorials, taking some Udemy classes, and I was asking questions about expression trees and some pretty heavy topics. They were like, “Oh, we got you hooked now!” And so about six to eight months after I had first started learning or relearning development, I decided I didn’t want to go back to med school. I wanted to pursue this.

My best friend Will, who does the podcast with me, brought me on as an intern. He had his own company doing consulting, and he did it just so that he could show me things as he was doing them. I was working in sales at the time. So, I would work from about 7:30 in the morning to 2:30 in the afternoon. Then, I’d go over to his house from eight to six or seven and sit in his office. Over the course of the year, I started doing more and more things for him until I think about two or three months before I got my first full time job in development.

“Look at what you want to do and list it out if you want to work in a certain field. Find out what that field needs, and what you need to work in there.”

What was your first job? Was it primarily developing websites?

My first job outside of the apprenticeship was as a contract developer for the State of Tennessee.

What’s your current job?

My contract was six months and it was a six month contract to hire. They decided to hire me on after six months, and actually just got promoted up two months ago to Advanced Software Developer.

Why did you start a podcast?

I’m a talker as you can tell. When you get him going, Will is a talker as well. He loves to talk about development. I also learn best through teaching. So, part of the reason we did it was to help me learn to be a better software developer. Part of it was to give me a little bit of credentials coming into the industry without a degree in software development.

What really put the nail in the head was when I was interning with Will. We had both taken the day off to go to an event at the Microsoft office here in Nashville. We’re sitting at a table with about five or six other developers, and I’ve been asking him some questions about some of the stuff they had presented to us. We were sort of bantering back and forth about it and we noticed that no one else at the table was talking. They were all just sitting listening to the two of us go back and forth. We kind of stopped and looked at them like, “You guys can jump in here too.” And they’re like, “Oh, no this is great. You guys should totally do a podcast or something. We just enjoy listening to the two of you go back and forth”. I think that was around April (2015). So, we started doing our research and looking into what does it take to create a podcast.  And then that July, we started building the website and recording episodes.

We wanted to have about three or four episodes ready to go when we launched because we didn’t want to be trying to learn how to do this while also trying to produce an episode every week. When we launched our first episodes in September, we had four episodes already recorded, and mostly edited. It used to take me a lot longer to do the editing back when I had no clue what I was doing. I think our first episode was about 30 minutes and it took me about 12 hours to edit because I was learning the technology.

How do you pick the topics?

What we were talking about at that lunch just kind of led into it. It was how to talk about technical subjects to non-technical people, such as managers, or Business Analysts. Then after that, we did a series on health, where we talked about physical health, mental health, financial health, and those sorts of things.

The first year we struggled. Each week, we’d try to come up with a topic, and we’d take turns writing them so one person doesn’t get burned out. We had a list just in a text file of topic ideas. If you couldn’t think of something to write about that week, you could go to that list and take something off of it. That kept growing especially after I started working. I would see things at work and think, “I want to learn more about this. Let me make an episode, and then I can kill two birds with one stone. I can learn about it, and we’ve got a podcast episode”. Now, I get the episode topics from everywhere.

We have a board with all of our episode ideas on it. We have 201 episode ideas that we haven’t even worked on yet. We break them down into three categories. There are technical episodes. There are business episodes, such as the signs your co-worker is quitting episode that just came out. Then, we have the life category. These are life skills, like we have one episode in the backlog called the real cost of interruptions. We try to keep that balance in what we’re doing.

Is there a specific key piece of advice that you will give to people who want to get into development?

It takes work. You have to put the effort in and stay focused. You get in, you’re learning, it’s exciting, and then you get to, I wouldn’t say the boring parts of the learning, but the more difficult things. You want to go learn this other really new thing over here and this other really new thing over there. Then you end up becoming what we call “Hello World” experts, where you know how to write very basic stuff in five or six different languages. But not one of them are employable skills yet.

My advice is to look at what you want to do and list it out if you want to work in a certain field. Find out what that field needs, and what you need to work in there. Nashville is very .Net heavy. So if you wanted to work in the Nashville, Tennessee area, I would suggest learning .Net. If you want to work in other areas of the world, there’re different things that are more popular there. So, look at what you want to do, and then focus on that. That’s what’s going to help you in the long run.

Do you have 2 or 3 recommendations for resources (book, podcasts, etc.) that have helped you in your career?

Coding Blocks Podcast is great. The guys that run it are friendly and knowledgeable. Soft Skills: The Software Developer’s Life Manual by John Sonmez. I suggest the audiobook version.

Do you have questions, feedback or suggestions of people to interview? Contact me! 

Breaking stereotypes and talking techie: Interview with Nicole Gilbride

Nicole Gilbride hates BBQs. I am not referring to the food (which is very popular in her home state of Tennessee), but to the awkward social gatherings around a friend’s grill or fire pit where new acquaintances, in an effort to break the ice, ask “What do you do?” She has great pride in her job as Strategic Planning and Communication Specialist at the Department of Veteran Affairs’ Office of Information and Technology; however, the problem lies in the reactions she gets when she replies: from sneering looks of people who think she is another lazy federal employee to questions about status of personal VA claims.

Fortunately, I did not meet Nicole at a BBQ but at a training summit for generation X and Y federal employees where she gave a talk and mentoring sessions to young people on how to thrive in the workplace. I was curious to know more about her role as a Washington insider and how she is able to bridge the communication and technology worlds.

Note: The interview has been edited for content and space.

Can you describe what you do?

I am the lead for the business planning operations in our Project Management division under our Product Development organization, which is VA’s software development organization. We handle VA IT software requests, like creating software solutions to help veterans schedule appointments online or schedule them on an iPad, or we develop systems to track prescription drug iterations to make sure people are not abusing substances. Those type of business solutions allow VA’s healthcare and benefit staff to provide world class engagement with Veterans, and they need IT solutions to effectively manage care for Veterans.

Admittedly, I am not a techie. I am in a very technical organization and in a lot of a ways I serve as a translator. I work to help translate to people who are on the ground building code and overseeing the IT projects, I help to translate the functions that they are developing and the services we are providing into words that normal people can understand. I make sure that I can explain what we do in a way that my grandma can understand… I do a multitude of other things: working strategic plans, prioritizing the assignment of our IT resources, but the communications part is probably 50 percent of my job, and it involves all kinds of comms… We do internal messaging within our organization and within VA and we do external messaging with the media, collaborating with Veteran Service Organizations, congressional engagements, video interviews, blog posts… There are very few briefings or memos that come out of Project Management that I have not seen or impacted. That’s sort of what I do.

You have a lot of responsibilities.

Yes (laughs). It’s a full day, it’s very impactful and it’s important. It’s challenging because I think communications is part of everyone’s job but we do have a lot of very technical subject matter experts that are not naturally communicators. One of the challenges in my job is “do I give them a fish or do I teach them how to fish?” “Do I do things for them or do I show them how they can do it better?” It’s a challenge.

Getting into the specifics of the technology part, as you mention you are a technology translator. From translating the user needs to the techies, how difficult is it not having a technical background? How do you learn to address that?

For me personally how did I learn to become savvy enough to be active in conversations about technology, honestly was just with time… I’m constantly researching what I need to research and when in doubt, I am constantly reminding my team “have you Googled this first?” because they’ll come to me with questions like “what is DevOps,” “what is the Internet of Things,” “what’s Scrum,” “what’s Agile?” When they do that I ask “did you consult Google?” There are so many resources available online that can at least help you… I either consult the Internet or I ask my peers, and part of that is overcoming your fear of asking people.

(…) The other part that you are talking about is what I would say is the requirements side, when the customer comes in and says “we want a shelter” but most of the time they don’t say “we want a shelter,” they say “we want a house and we want it to have tin roof, we want to have 38 windows, this is exactly what we want” and not realizing that maybe there is a better solution… I personally think its one of the most challenging areas for IT systems. Requirements are usually the thing that kills you. It manifests itself by either schedule delays or cost overruns… There has to be a line, you have to have things that go above and below the line. If you keep to your schedule or keep to your budget, it will help you decide where that line is.

In that part of the requirements, do you think the problem is the customer does not know what they want and they are having trouble communicating it? Or do you think is the problem is on whoever capturing those requirements?

I think it’s all of those things and it’s more things. If you ask two people what they want to get from point A to point B, what you would get as a response, even if they are the same business customer, is different… What the business customer wants is constantly evolving… It’s a challenge and I don’t think it’s a just communications challenge either.

In the other part of your job, the combination if internal and external communications, what are some of the challenges you have?

Our biggest problem internally with communications is really that people want a customized solution for them which is inherently impossible. The challenge is finding something that makes the most people happy and figuring out that each organization is so different… If you’ve got nurses and doctors running around with other clinicians, sending them an email twice a week with your message is not a good way to tell them that there is a new system coming out, that there is an employee survey coming out. Most doctors spend more (time) on their charts than they do on their email inbox…For every doctor out there they also have a lot of admin staff who do spend time on their computer. An all hands message in an email may work for those folks but it’s not going to reach the doctors and nurses. Finding ways to customize solutions for different audiences is a challenge.

On the IT realm (the challenge) is the level of technical detail in the messaging. We have a lot of very tech savvy people but for every one of them we have another person who is an admin staff, who does not have a technical background, a budget person, an HR person, whatever the case may be. Finding ways to balance, simplify our messaging for a general audience and keep it engaging enough that technical folks are not bored or dismissive of the messaging is a challenge.

Why did you decide to go into government work?

As a young person I went through the “I want to be a ballerina” phase. Then around 10 or so I entered the “I want to be President phase.” As a young child, I always had strong verbal skills. I could sit at the table with adults and negotiate with them. I could take on a debate. Eventually as I got to be an adult I started to get more into politics and that sort of led me to where I am today I’d say. In college I pursued an internship on the Hill which ended up being a communications internship with the former Speaker of the House. When I did that communications internship it opened a door for me.

(…) I wanted to help improve our country and so I recognized that communications is sort of the glue that holds everything together. I see a lot of great ideas don’t take root, don’t spread, don’t get shared, and communication could help spread and share great ideas. I think I kind of had an epiphany of “I really want to do communications for a job”… And I have a family that has a legacy of public (service), one of my grandmothers worked for the VA 50 years ago. My aunt works for the VA, I’ve got a lot of family members who have worked for various state, local government organizations; military service is throughout my family. I was always raised to believe that I could have a positive impact and that lead me to public service as a career.

For those people who insist on working in government because, as yourself, they feel they can make a difference, what skills in the communications field they should have or learn from?

Accolades for being committed to joining, I would tell you it took me probably close to seven years to finally get in. Navigating USAJobs is not for the faint of heart (laughs).

On the skill standpoint, I think the biggest communication skill is actually networking. Having someone who can actually write effectively is wonderful. Having someone who knows abut graphics and visuals and branding is great. Having somebody who has experience on camera or presenting to large audiences, all these things are great, they are important skill sets and by all means, put them on a resume, but the one thing that you can’t really put on a resume and will make or break a communications employee from my standpoint, is the ability to make connections with people and network. I’m not talking about networking in the sense we normally think of with LinkedIn networking or speed networking, but creating and cultivating really meaningful connections.

(…) For most people (in communications positions) it’s a multi-hat situation where you are doing various forms of communications and having those connections within your department, within your agency, with various staff offices, and with your peer group will make or break you.

I would also say an important thing for the future of communicators will be the ability to communicate by leveraging technology…Twenty years ago if you could write you could write. Today you need to be able to write to different sources. How do you turn a two page blog article into a Tweet? It’s a skill. You have to learn to transform something that is so content heavy into something so short and impactful. Being able to not only use current technology, but to be on the cutting edge and to show willingness to continue to learn and stay ahead of the curve. That is very critical I think.

Follow Nicole Gilbride on Twitter @NicoleGilbride

Follow the author @yadicarocaro