Squares Conference (feat. Noah Labhart)
Published 5/22/2017
In today's episode, I interview Noah Labhart, owner of Touchtap, a mobile development firm in Dallas, Texas.
Noah and I discuss the value of learning a programming language you never plan to use, and much much more in this interview!
Today's episode is sponsored by Fuse! Build native iOS and Android apps with less code and better collaboration. Head over to spec.fm/fuse to learn more today!
Transcript (Generated by OpenAI Whisper)
Why would you learn a programming language that you know you're never going to use on a real project? That's one of the things we're talking about in today's episode, my interview with Noah Labhart. This is another interview from Squares. My name is Jonathan Cottrell. You're listening to Developer Tea. My goal on this show is to provide you with the coaching and the insights, the conversations with other developers like in today's episode, that help you become a better developer, help you level up in your career as a developer. That's the entire point of the show. And I'm thankful to say that I've received many emails and tweets and even in-person thank yous from those of you who are listening to this show, and it is helping you. So I'm really thankful that that's actually happening, that we're finding a way to do this together and to help all of us become better developers, have the right conversations, and constantly having a dedication. And I'm really thankful that that's happening. So thank you so much for listening to today's episode of Developer Tea. Noah is a successful app developer. He owns his own company. He was a developer that went out of development and came back. We'll talk about all that stuff in today's episode. I'm going to go ahead and get out of the way. We're going to get to the interview with Noah Labhart. I'm here at Squares with Noah Labhart. Howdy. Am I saying that correct? You said it perfectly. Good. Noah is the owner of TouchTap Apps. That's right. Tell us. Tell us what TouchTap does. So TouchTap is a native mobile development agency. So we focus on native development for iOS and Android. That's kind of our bread and butter. We also do back-end development services, front-end, marketing websites, things like that. But our big advertisement we really focus on is mobile. Yeah. So you did a workshop on animations. That's right. So this crowd, it's really interesting. This crowd is full. It's full of people who, really, there's a lot of designers. There's a lot of developer designers, front-end devs, people who are not, meaning there's not a ton. It's not a heavy audience of back-end developers. Probably not a super heavy audience of native developers either. That's true. Yeah. So you're kind of bringing this somewhat foreign topic to the table. How did it go? I actually was not in that when I was in a different workshop at the time. How did the workshop go? Sure. It went great. And you're spot on. It's a bit of a more technical concept or topic than most people, maybe the crowd is positioned for, so to speak. But it went really well. Everybody was very receptive. In fact, I had a room full of just designers and one web developer. So no iOS guy. So I didn't make any mistakes, at least in their eyes. So that was good. Good. But yeah, it went really well. We had a lot of fun. I got to show them some stuff and animate some things. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. Thanks. The primary goal was to sort of bring a little bit more technical content to some of the workshops, a little bit more rich technical content, but ended up getting into a lot of good discussions about what should you animate, what is tasteful animation versus the 90s website with the marquees going over, stuff like that. So it was really good. Really enjoyed it. And I'd love to do it again. Very cool. Yeah. So animation on iOS, this is probably something that you've done quite a bit of work with. because animation is so important. Important to do correctly and important for a good app to have, right? That's a very broad way of describing it. That's good. If you have a native application, then really to set yourself into even the average crowd, you probably should have some decent animation going on in the app. Right, that's absolutely true. Talking about tasteful animation, how do you know, where do you draw the line on what is appropriate and what's over the line or feels gratuitous maybe? Do you feel like that's something that a developer can develop the taste for or do you think that's something that should be determined well in advance by a designer or maybe it's a collaboration? Sure, great questions. Two things and I'll answer both. One, how do you determine, what is the level of animation to figure out what to use? And it's really sort of the best animations are subtle and transparent to the experience. They're almost unexplainable. Something just happened when I clicked that button and I almost didn't see it. But it felt really good and I want to do it again. I was telling people in the workshop yesterday, every time I open an app with a parallax image at the top that hides itself, I want to scroll. I want to play with it. Right, yeah. So whatever functionally helps your users have a better experience and whatever brings them back to that experience and makes them want to do it again, that's what you want to animate. And then as far as where it starts, I think it always starts with the designer. I think if us as developers who are true to what we're good at, which at least for me, I'm not a designer. I believe in design and I believe that I've been very lucky to work with some really good designers. I think it always, it always starts with them because they see things differently than we see things. Sure. Now there's always some good conversations about, okay, we can't do that or we can do that, but that's going to be an extra six weeks of development. Right, yeah. So there's always those types of conversations, but I think it's got to start with the design. Sure, yeah. So the designers at TouchTap, or if you work with external agencies, how are they typically doing their prototyping? Do they have any particular tools that they use for, like animation specifically? Sure. Do they explain them? How does it work? Right, that's a great question. So we've kind of run the gamut on a couple of different tools. The ones we've been using recently are Envision and then Flinto is another one. Mainly those aren't specifically geared towards animation. They're more towards prototyping. Yeah. So anything that we sort of get heavy animation on, it's more of a conversation. Sure. At this point. I think there are some good tools out there that allow you to mock up some good animations. I'm kind of, I'm drawing a blank right now of what one of them is called, but there are some out there that focus specifically on that. Sure, yeah. There's quite a lot. I know the one you may have been looking for, I don't know, but Marvel is one of the- Marvel. We've used Marvel before too. Yeah, that escaped me. Yeah, yeah. So there's quite a few of these tools. But interestingly, we were actually just having a really good discussion a few minutes ago about tools and about the purpose of learning a new language. Right. You know, as we did a panel, Lauren, my wife and I were on the panel a little bit ago. And one of the questions that came up, and you were in the room, one of the questions that came up was, how do we keep up to date effectively? And this is something that we talked about on DeveloperTea countless times. Very common question for developers to ask because, you know, as people come into the industry, as the industry grows, tool, tooling will grow as well. And the things that we create and the things that we share, that sharing level, it's very similar to if you were to walk into a bookstore and say, all right, it's my job to read every book in this bookstore. Now take that and multiply it by, you know, 10 or 20 times or maybe more. I don't know. I'm not sure how many books are, you know, on average, how many books are in a bookstore. Every week the books always change too. Yeah, exactly. So, I mean, you're talking about a massive, massive amount of information and tooling and, you know, choosing between those tools sometimes feels like you're, you're drawing a lottery ticket. So what a lot of people do is they effectively buy a bunch of lottery tickets. They, they spend all of their time and all of their energy trying to figure out which direction to go. And again, something we've talked about quite a few times in the show, but this discussion, I think something that we came on after the fact, a really, really cool point that, that we ended up, you know, kind of discovering together was this idea. And you actually mentioned it, the idea that that the creative process is kind of a waste, right? Can you kind of expound on that a little bit? sure, sure. So, you know, after, after your, your panel, your talk, which y'all did great by the way, after that talking, we were talking about sort of the tools and such, but I struck a parallel between the creative process. You know, when, when you're creating something, when you're, when, from an art, purely art standpoint, when you're trying to build something, whether it be art, whether it be something like woodworking or things like that, go to the elements, there's a lot of waste. Yeah. Right. Right. When you're cutting pieces off or you're, you're, you know, cutting clay off or things like that, there's a lot of waste to get to the end product. And, but it's not about the waste, it's about the end product. So, us as developers tend to focus a lot on inefficiency and having the answer, black and white. It's not about the right thing to do. And, kind of arriving at the answer, arriving at the goal or the, the product that you're trying to output, there's a lot of waste that goes into it. Yeah. And even in our own self development as developers, there's a lot of waste that goes into learning. Or it feels like waste. Yeah. But there's a lot of sort of intrinsic value and learning shaping value that comes out of that sort of so-called waste of, I may build a project on a weekend in this new technology and then throw it away. Yeah, exactly. So, this is what we arrived at in talking about this was learning a new programming language. If you walk into that with the only objective being, I want to add to my tool set, then you may miss out on an extremely valuable exercises, right? Extremely valuable learning opportunities that you otherwise could have expanded your, what you said, sharpening your ax. Right. This idea that, you know, I've learned a lot from this, and that I've, I've looked at a couple of functional languages and not enough to add them to my tool set as something that I can regularly use. But instead to change the way that I think, right? And in many ways, this is kind of the same reasoning applies to why people should read, why people should read books, right? Why people should be exposing themselves to many different ideas. It's not because those books are necessarily going to give them attention. It's because they're going to give them a tangible skill to walk away with and immediately use. Instead, it's a different type of utility. And I think that that is, that's a very interesting insight into this learning. Probably if we view languages and actually we, I mentioned this on a recent episode of the show. I can't remember which one, but we, we talked about languages as a collection of, of opinions, right? And I think that the same type of logic run through two different languages is going to look different, but it's going to have basically the difference in the syntax is difference in opinions most of the time. So exposing yourself to multiple design opinions, how things should look or how things can look can totally change the way you think about the way you're building your thing, right? So no matter what you're using. So I, I used Ruby relatively often. Uh, but I, I looked at Haskell and looked at Elixir and a few other functional languages and it changed the way I think about the way I write Ruby, right? And the same is true for learning Ruby and then going to JavaScript or, you know, what a fill in the blank really. Uh, and, and it's not only limited to, uh, programming languages. You can learn a lot from philosophy. You can learn a lot from, so it's, it's this concept that your knowledge is a standard. Uh, you're not a single bank rather than, um, you know, your knowledge of programming being a list of capabilities, right? Right. You're not a machine. Absolutely. No, that's absolutely true. It gives you a broader perspective. Um, and that's why I love things like squares and, and circles and conferences we go to, because I feel like just like the tool set, just the people to hearing about their experiences and opinions and what they're presenting, uh, broadens my, you know, my perspective and sharpens my acts in a different way that makes me feel like I'm doing a good job. Yeah. At conferences, you may find that they may not have the same evolution of evolution, like you're saying. Well, it's very, very good insight, actually. Another concept that gets broken at conferences for people in a good way is the perception of the online personas of developers like you or me or anyone else who's here. We have a constructed version of ourselves that people see online. And we can develop a lot of self-consciousness when we are not in contact with other developers. We think that other people are learning everything. We think that everyone else is moving faster than we are. And the reality is very different. And when you talk face-to-face with another developer and you realize that I learned from them, but they always... They also learned from me. Now, it's a collaborative effort. And now, you're realizing that the value that you have provided to the world, it can be very helpful for feeling a sense of a lack of motivation or a sense of depression or like you're missing the mark, for example. Certainly. So, I would say that's really the big value of coming to a conference. Right. Right. You know, it's weird to think of it like this, but we work in sort of... In the digital world, it's very cold, right? We're on Slack all day or on some sort of chat. We're on the web, we're on a computer. But getting face-to-face and talking to people, there's warmth and there's something that comes from... There's a vibe of something that comes out of just interacting with people that you can't get. And you start to realize, hey, we're all human and we're all doing this. And not one of us is better than the others. Maybe we're all human. Well, skills in certain areas, but you know. That's it. It is vulnerability, I think. If you look at a computer is completely invulnerable. When you have made a mistake, it will let you know right away. Right. And with no uncertain terms, right? And so, we're faced with our mistakes as developers. It's another kind of background theory, popular theory that I have at this point that that because developers are constantly facing the reality of our mistakes, right? We constantly are hitting bugs. You go to a live coding session, the API coding session, most of the changes that you make and test and a lot, like when people are watching, you're going to be making mistakes. And becoming comfortable with that is really hard to do when you're only on your own. Right. And it's easy to have the perception that other developers are not making mistakes because they're only showing you their finished product. Sure. They're the thing they're proud of. Right. And you're not experiencing that together when you're, you know, only engaging via social media. Right. So, it's really important to remember that vulnerability being such a key part of a healthy career. Yeah, absolutely. That's good. It's interesting to see. So, parallel, you know, I'm a developer, I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. I'm a developer. At the same time, you may have evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution people are going to you know take away from that right um and so you know if we were to meet in person it's almost certain that i'm going to be different from that uh it'd be very hard to be perfectly transparent in that digital version of myself absolutely yeah i'm picking the good pictures to show and i'm composing the tweets but yeah you're not hearing the mistakes right or at least hopefully not too many of them um but that's very composed and and that's true for literally every human in this building right absolutely every person on the planet is uh is prone to those mistakes so it's very encouraging to see someone that you admire make a mistake um so anyway all that to say um you know having that in mind i think allows us the the sense of freedom to pick up a tool for only for the fun of it or only for the experience of it uh and not have to worry so much about the perfect efficiency of that learning process right yeah the same with animation i'm sure right try a lot of different things right oh yeah get back to the very simple the simple realities absolutely yeah you're right and and you know they're in the in the same route you know they're in the in the same route that we're in the same way that we're in the same way that we're in the same way that we're in the same way that we're talking about earlier with all the tools the way to animate things in ios is the same way there's there's five ten different ways to skin that cat sure right yeah and if not a thousand right totally and then people abstract it in new ways and then there's you know open source libraries that you can use and and uh and get in there and and really change the way that you know how to do things and then you feel like you're back to square one right yeah like the developer meme that's like there's there's bugs and then you're questioning your career and then yeah yeah and then it all goes back to square one always ends back at bugs right yeah and you're back oh wait it's working now i don't know why but it's working right right yeah yeah so that's good we're talking about mobile applications in today's episode and if you're a developer and you've been building mobile applications for very long at all then you probably know that the tool set doesn't really change very often the applications may change and the business landscape is changing all the time but the tool set itself seems to stay relatively the same in terms of what you have to do usually you have one screen with some code on it you're writing that code then you're saving it and you're recompiling and you're watching for the changes in another screen this has been the way that app development has worked for really decades with some slight improvements and slightly nicer screens new typefaces but ultimately the same kind of model and today's sponsor is helping change that landscape today's sponsor is fuse and with fuse if you've ever used a game development tool called unity fuse is kind of like unity for app development it allows you to write a little bit less code and get a whole lot more done fuse installs on windows or on mac os very easily there's no external dependencies and the apps compile to ios native ios and native android applications so go and check out what fuse has to offer to you as a developer t-lister by going to spec.fm slash fuse that's spec.fm slash fuse thank you again to fuse for sponsoring today's episode of developer t so i think this i think this discussion on tooling is so important you know uh with with things like uh native development you're seeing tons of tools come out things like electron for the desktop and react native for for ios and android and then plenty of other tools that that we don't need to use but i think it's a really good tool to be able to do that and i'm not going to necessarily go into but um but it's very interesting to hear and it encouraging to hear that you know uh someone who is working in a native environment that being open to those tools is is still you're not uh you're not going against some you know unwritten code uh uh or or some unwritten agreement that you're going to be a good developer you know going and testing out react native doesn't make you a worse developer because you don't know how to uh code the native side of things right sure right right now that's good yeah i mean the more knowledge we can have and the more we can sharpen that axe like we were talking about is is always is is so good and what if we were remembering if we are remembering what we're developing for like we're building a product for some reason yeah right so at the end of the day the tech is important and how we get there but it's not the end goal right so we if we're building the product and meeting the need and our our clients or customers or or users are are happy with that i mean it's a win yeah yeah so allow it to be allow it to be fluid right and uh be willing to change the most successful developers are in my opinion going to be the ones that um both are willing and prepare for change that both both of those are important um if you're only preparing for change but then you're unwilling when it needs to happen then you've got a bunch of useless knowledge right sure if you're only willing to change but you're unprepared when it needs to happen then you have a huge gap between the time that it needs to happen and the time that you're able to make it happen right no matter how willing you are that gap is still going to be there so preparation and getting your mindset ready for adaptation and that also means getting your code base ready for adaptation making things in a way that that allow them to be changed that goes beyond just good code quality and it moves into more of a holistic perspective on what is the purpose of technology what is the purpose of of an application and typically that purpose is is not terminating when you deliver the project sure yeah typically it lives on it lives on past that so right all right this has been fantastic uh discussion i like to ask all my guests two questions sure uh the first one is what do you wish more people would ask you about that's a great question oh um and this was one that we actually were asked in the panel i finally had somebody ask me that question that's good that is good so what what do i wish people would ask me more about um and this can be anything it doesn't have to be just uh developer okay okay gotcha gotcha um i i enjoy um telling the story of how i've gotten to where i've gotten in my technical career uh i don't wish that people would be like no how did you do it but because i'm no in no way a superstar but i i have kind of gone through some trenches of some different things sure um and i think there would be some good uh insight i could offer to new developers i like mentoring younger developers and junior developers and um so uh yeah i i think um maybe asking me about that would be cool do you want to actually give a quick uh just kind of a rundown of where you did come from and then sure people are you know if we if we have time later at another date or maybe people want to ask you more they can they can reach out absolutely no that's great so so i started out um doing dot net development in the corporate world um so graduated from texas a&m uh and then started doing dot net development straight after did that for a year or so and then went into corporate america for another eight years and did more project management implementations things like that while doing software development on the side so you know it's easy to look at that and see well you're not doing software so you know you're missing your skills are eroding you know or things like that or you're not what are you really learning that has to do with software delivery or software development i actually learned a lot sure yeah in the in the corporate world uh and actually supported manufacturing for several years um i learned a lot about project management i learned a lot about uh delivery um i learned a lot about uh budgets i learned a lot about people managing people and leading people um and without that i couldn't jump out on my own and be the entrepreneur that i am today um so i did that for eight years and then i jumped out uh after that time and started touch tap um and then we've been rolling for a few years now uh and been doing that been growing uh at a really good rate which is awesome i have some really good guys that i that i work with that work for me and um they're they're fantastic uh my latest venture actually is kind of a return to manufacturing uh which is my startup it's called variable um and it is a on-demand marketplace for manufacturing labor oh wow interesting so it's kind of bringing new tech to an old industry yeah yeah a new idea that needs it uh or a new a new idea to an industry that needs it yeah so yeah for sure very exciting type stuff that's exciting yeah thanks congrats appreciate it congrats on the on the whole journey it's uh that would i think for especially for people who feel like they're stuck in uh a job they don't want um you know knowing that this is something i tell listeners all the time a lot of people try to either rush away from the job that they're at so they get this sense of of excitement and hope about becoming a developer and you know they'll go in and give their two weeks notice and and then suddenly they're out of a job and uh now the the clock is ticking right right and and time is is is not on their side and whereas before it kind of was on their side and and they lose the ability to be flexible they lose the ability to get into a new job because they don't have enough time to learn or they don't have enough time to to actually find the opportunity right right and so they cut their own legs out from under them and instead of taking that energy and excitement and parlaying it into you know study or parlaying it into uh uh you know some other like writing your resume at night right right right um they end up i don't know acting on it in in a way that hurts them in the long run uh so i think that's really encouraging to hear that you had this this relatively long period of time for your career where people were telling you hey you know you're writing your skills and in actuality for you uh the way you experienced it was you learn more you you actually could take that experience and use it and you know you're rather than it just hurting you more and more over you know the longer you waited right right right and absolutely i mean i think it goes back to every every sort of experience or opportunity whether you feel good about it or not like if you're in a job you don't like um you're getting something out of it there's something you can take away from that and it may not you know it may not be the day-to-day that you're dreaming of that you're really going after sure but you can learn something from it and take it and and you'll use it yeah you'll use it later and when i when i jumped out of corporate uh the corporate world you know it was it was scary it was that same sort of feeling like okay well how are we gonna um how are we gonna you know eat next week and things like that right i'm very very blessed to have a a wonderful wife that that supported me through that well whilst we still had children and um was believed in me and encouraged me through that so a big big props to her yeah because hugely helpful yeah i have one of those yeah absolutely i have one of those as well it's a it's a it's a blessing for sure um that's such a great story um i'm gonna go ahead and ask the the second the second of the two questions uh if you had 30 seconds to give every developer uh regardless of their experience level a little bit of advice what would you tell them well that's a that's a great question i'm i'm a little bit of a perfectionist in heart so i'm like trying not to perfect it i'm just gonna go from from my gut there sure um i would encourage all junior developers to to do two things uh put in the time to to learn and to gain experience yeah um i think i think we're we're in an age where everything is accessible information is accessible everywhere and it's kind of easy to feel like you know everything already right yeah but but until you jump out there and do it and be a part of projects and do things you don't um you don't know what you don't know kind of thing so i would encourage developers to get in you know put in the time work hard and and do do what they can do which i wish i could go back and tell myself a couple of times listen to your to your older developers listen to your mentors listen to your managers they're in a position to see things differently than the way that you see things it may not feel like you can't see outside of what you're doing and in your coding interface or your ide but the reality is when your head's down in code you can't yeah so those people are really their opinions are really valuable so i'd say listen to them that's great that's very good advice i think i think that so i'm gonna continue that discussion and we'll wrap up uh the idea that you know another developer is their ideas are not going to be relevant to you uh even people who are adjacent to you right in terms of the the structure of your company right or even people who are junior to you this is something i experience all the time at whiteboard uh developers who have come on to our team that i'm leading that teach me every single day right and it's it's a humbling experience but when you do actually learn to lay down a little bit of the ego or the pride um of of you know knowing how to do something right when when someone else when you allow someone else to give you their opinion then it turns it it shifts from a fight right which it could be conflict a negative conflict sure into a positive conflict and that positive conflict means that you're going to pick between two good options right right and and that opportunity is invaluable a lot of people reject that opportunity and end up not picking the better of two options and just going with an option and most of the time if you have the option to pick you're going to end up with better software in the long run right right so having somebody come in and collaborate is hugely hugely valuable so your point about mentors uh i think the fact that you know some people um are disillusioned to this idea that an older developer or somebody who is you know kind of of the old guard like they they don't know yeah they don't know the stuff that i'm using or maybe they don't respect the new things that i do respect um i think you know it's important to know what pieces of that are valid right and to know what your differences are but it's also important to respect the fact that they've been facing problems and problems are we we all are human right they've been facing and solving problems and their experience will be valuable in one way or another it's going to be valuable and you may have a chance to uh to increase learning on both sides of the table yeah and usually that's the case totally totally i'm going to take that take that with me yeah i think that perspective of the the double win to yeah two good options yeah yeah appreciate that awesome uh no thank you so much for for coming on the show yeah thanks for having me jonathan thanks so much for listening to today's episode of developer t each and every one of these episodes is thought through very thoroughly to help you become a better developer that's the entire goal of this show and i am always open for your feedback and your questions the problems that you're having please send them my way i'd love to hear each and every one of your questions those problems and questions you can email me at developer t at gmail.com you can also find me on twitter at j katrell j-c-u-t-r-e-l-l or at developer t thanks so much for listening thank you again to today's sponsor fuse if you've been developing applications and you're using the same old ways of developing then maybe it's time for a change go and check it out spec.fm slash fuse thank you again for listening if you don't want to miss out on future episodes and awesome interviews with people like noah then subscribe in whatever podcasting app you use thanks again for listening and until next time enjoy your tea