Soft Skills Engineering - Episode 181: Blocked by back-end and tired of coding

Episode Date: October 28, 2019

In this episode, Dave and Jamison answer these questions: I recently took a job at a start-up as the only front-end developer. The distinction of front-end and back-end is new to me as all of... my previous experience has been full stack development. Most of my work can only be started once a back end developer has done their part. There is only one back end developer who just so happens to be one of the co-founders of the company. Because he can’t exclusively dedicate his time to back-end work due to his other roles with the company, I am left sitting at my desk writing to you guys trying to figure out what to do with all this free time I suddenly have. I’d like to stay busy and not just look busy. I’d appreciate any advice to help get me busy again! Hey Dave and Jamison, love the show. Quit my job twice since I started listening so I’m a super fan. Long story short, I think I’m bored with coding(?). I just see everything as moving JSON around. Putting it in databases or putting it in queues or on a screen. I’ve done mobile, I’ve done backend, I’ve done front end, and it all just starts to look the same after a while. As an industry I feel we’ve solved the hard problems and now its degraded to this. What do I do next? Do I find a software product where the JSON moving around excites me (for example, a social good or cutting edge product) Do I look at something very different like embedded dev or games dev? (No JSON there!) Or do I look to tech leadership or people leadership? These options appeal but I’m just five years into my career and 26 years old and of course no one takes me seriously, naturally. However, I have been very deliberate and been very intense about my career, but now I’m feeling a bit done with coding. Team velocity problems interest me more than JSON APIs. People interests me more than code. I’d love to hear any of your thoughts on this! Thanks :D Keep up the great work.

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than your proof of concept going to production against all your previous statements saying not to do that to be a great engineer this is episode 181 of the soft skills engineering podcast i'm your host jamison dance i'm your host dave smith soft skills engineering is a weekly advice show about all the non-technical parts of the technical field of software development shout out to bruce from our slack channel who we crowdsource this intro to yeah i'm pretty sure i've done this to another team too though like oh cool cool little test demo hackathon service you you got there that you've deployed to a vm why don't i just bloop oh okay now my production app depends on it thanks please remember to restart it periodically i'll make sure to page
Starting point is 00:00:53 you at home yeah what's your home phone number again i just want to make sure this stays up i i can just hook up a little twilio integration when our calls fail it'll just the error messages will just text you that's right and thanks for the tier one support appreciate you don't worry we'll thank you in the source code yeah yeah you'll be credited it'll be great shout out to to alice thank you so much to her wonderful support yeah and giving up her home life yeah to restart this service that she built in two days five years ago
Starting point is 00:01:34 all right all right i think we have some patrons talk about our wonderful patrons yes i would like to do that i'd like to thank those that are contributing on patreon if you'd like to support the show on patreon go to softskills.audio click support us on patreon The people who are doing that now are Matthew Voidovich, The Agile Ventures Charity, Bartek Tatkowski, Ted Nugent, Crash Bandicoot, Zach Granin, Maple Syrup, Louis Santos, Krishka Kanopka, Piska Jopka, Nick Kantar, Vinlok, Taras Harouk, Sean, Sunny Tai, Brittany Ellick, Sonic the Hedgehog, Ivor Robotnik, Florian Tadzl, Murray Rosso, Chris Hogan, Dimitri Janssen, and Stanley Tactical Radio. Thank you so much. We have an update from a listener from a previous question. so in episode 168 we talked about an engineer who was working from home and was worried their work from home privileges would be revoked because of some other developers so here it is i asked the
Starting point is 00:02:28 work from home jeopardy question wanted to give you all an update i was worried about an engineer who was less communicative when working remotely the leader informed me that this pattern of inconsistent work existed before i started and i continued to see it as we worked together this engineer's tasks would have unknown status for weeks and then either a task would get done all of a sudden or the engineer would reveal that an important task had not been started this was immensely frustrating for the rest of the team and the engineer was eventually let go and i retained my work from home days everything turned out okay yay with several a's yes yeah great great for you right this was the question where we had two terms that i thought were really
Starting point is 00:03:07 funny we had the leader capital l leader remember this one yeah and it persisted in in the update that's right leader is still capitalized that's right and then we also had the term ng which we don't use that enough i think yeah that should that should become part of the standard lexicon i think yeah for sure all right well congrats to you and sorry things didn't work out for the other engineer yeah should we dive into our questions let's do it i'll read the first one this comes from a listener named Max, who says, I recently took a job at a startup as the only front-end developer. The distinction of front-end and back-end is new to me, as all of my previous experience has been full-stack development. Most of my work can only be started once a back-end
Starting point is 00:03:50 developer has done their part. There is only one back-end developer who just so happens to be one of the co-founders of the company. Because he can't exclusively dedicate his time to back-end work, though, due to his other roles within the company, I am left sitting at my desk writing to you trying to figure out what to do with all this free time i suddenly have i love it i'd like to stay busy and not just look busy i'd appreciate any advice to help me get busy again nice i expect many more questions max you got some free time here let's burn it max is just furiously typing all the time what is he doing what's up with max and the google forms his ide theme sure looks a lot like google forms
Starting point is 00:04:39 what a situation oh yeah most of my work can only be started once a backend developer has done their part which means most of my work can only be started once the co-founder has done their part yes which is a weird situation to be in yeah so i've been on teams with the strict divide between back and in front and before and even if there are full-time dedicated dedicated people you still have this time where people are twiddling their thumbs just kind of blocked or they have to pick up some other task that is like less important but not blocked and then there's more context switching and i like teams where people specialize but are also willing to unblock stuff by kind of jumping into help so this stinks that's that's that's the summary
Starting point is 00:05:22 this stinks and you're in the a worse version of it because it's this person who is probably hard to bug and also incredibly busy right there's this trope in management or this idea that engineering managers shouldn't be in the critical path of feature work i think we've talked about this before and i think this probably applies to depends on the state of your company but it could apply to your co-founder too that yeah co-founding a company is lots of things and at some point what it is not is cranking out code critical path back-end code is probably not yeah that that other people's work depends on right yeah yeah so this is tough so i actually have a legitimate technical answer to this question but i'm trying to decide if on moral grounds i shouldn't give it
Starting point is 00:06:06 because this is a soft skills show okay give it and and i'll give you a an indulgence you can pay me to make up for saying technical things on this show nice i actually i want to save it i'll give some stupid ideas first how about that okay sure look so i mean okay here's stupid idea number one obviously the problem here is you have a back end so clearly the answer is serverless ah yes exactly no back end driven development and then your back end just exists oh oh just set up a giant firebase database and just shove everything in there it's like globally readable you know and just all the logic business logic everything's in the front end and just forget about the back end boom unblocked
Starting point is 00:07:01 problem solved and good news it's really easy to build integrations against it because everyone can just read all the data yeah and write all the data right super easy you'll never get a permissions error you know yeah think of a world without authentication think of all the overhead spent with authentication that you can just bypass so to continue the theme of technical stuff you can do auth in firebase but i mean why would you yeah more work right it's gonna get in the way of the free flow of information yep okay i like them okay any any more good ideas well the other one is kind of a hybrid approach to that where you could build your own back end that's like a middleware call it like a
Starting point is 00:07:49 middle end i don't know call it call it your half stack point yeah basically stand up your own database your own little back end and just start building your back end apis there you've got the experience you know just set it up and then you know when you really occasionally you might need to be blocked on this developer but for everything else you can just build your own and you just call it a front end yeah that's right that runs that happens to run in a data center call it like a cache or something but really it's on persistent storage yeah call it your cdn so when i took this job i joined a team of people who are like standing up hardware and data centers and working with work like building routing software and stuff so their definition of front end was
Starting point is 00:08:30 very different from mine and they kept calling like the back-end api that i helped build the front end because yeah it's it's not like running on the network card right right okay yeah you can call it front end you call it whatever you want yeah perfect okay got it all your good advice is given what else would they do well i do have one serious soft skills advice should i give that one now oh yeah why why do i keep asking your permission like i don't know what yeah what would i say no i don't know i guess i'm just scared of you okay i mean so the question i have is does your back-end developer accept pull requests i mean could you just make the changes yeah yeah i mean i i can see the distinction of being hired as a front-end developer and being told kind of
Starting point is 00:09:25 that's your area of expertise but i feel like the company would be happy if you were blocked less right i mean unless this co-founder just has a gigantic blind spot or huge ego or something and it's like no one could ever be blocked by me because i'm i'm the champion code writer my code is it writes while i do these like fundraising rounds it's how good it is i feel like you have you have a case where it benefits the company you can pitch it as a benefit to them hey like i know back-end stuff i'm blocked i'll just do this and why would they say no to that ever yeah like you can review it maybe maybe you'll have time you don't have time to write the code but maybe they have time to review the code yeah i mean maybe it's a really tricky domain and they're worried
Starting point is 00:10:06 about you messing it up or it's not oftentimes code bases that one person writes don't have a lot of affordances for other people working on them so there's like a complicated build process or it there's just a lot of stuff that doesn't matter when only one person works on it because that one person knows how to do all the things but i can't think of an argument where you sitting literally doing nothing while the co-founder does co-founder things is better for the company than you trying to progress yeah for sure i have seen this back-end front-end developer hierarchy sometimes where back-end developers get all uppity and think like our stuff is hard and important and your stuff is easy and dumb yeah and so maybe there's some amount of maybe there's some some
Starting point is 00:10:48 lack of trust there of like you couldn't possibly handle the complexity of writing to this sql database that's so true oh if only i hadn't been guilty of this massive overhead just the mind-boggling amount of state you have to keep in your brain to click deploy on this gooey whatever i don't know but i think it's worth bringing up and saying explicitly hey i i can do this and i'm blocked and it might also be worth if it's a small startup if which i assume it is because your co-founder is still in the critical path right then there's probably a biased action type of thing going on where if you just do it that will probably work out better than asking permission yeah i mean you you should just say hey i'm gonna do this and then do it there's this idea
Starting point is 00:11:38 of if anyone objects you say so in this case you would say hey i'm blocked a lot on back-end changes i'm planning to make those back-end changes myself if anyone objects please let me know and then just go ahead and and do it and that gives a chance for people to step in if there's really something horrible but if not you can just keep going and it could also be that there's all kinds of issues like oh i have to get all these permissions to even run a local copy of the back end and this person has to grant those permissions it could be painful that way yeah if you're blocked anyway though making like if it's hard to run locally or all that stuff i mean that's stuff you can fix with your time and if you're blocked i mean once you've written us more questions then
Starting point is 00:12:16 That seems like a good place to invest your time. Great. Just give us like a daily journal of, you know, what you're thinking about. I haven't gotten to my actual technical advice, but when I've been in this situation before, what I've found works pretty well is if you will, as the front end person, create mock API content and say, here's what the URLs I'm expecting. Here's the payloads that I'm expecting and actually just create it and then have like a little mock service that you can run locally that returns this data so you can start developing
Starting point is 00:12:48 against it and this has the side effect or sorry it has the main effect of unblocking you so you can start building the ui but it has the side effect of creating a concrete thing that you can review with the back-end folks and come to an agreement on what the api contract should be and it's much more concrete than just a whiteboard session or even a document because it's actually a working prototype that you can say look this is what i'm expecting it to do and then when the backend doesn't do that, you can say, look, this is what we agreed to. You got to, you got to fix it. So little mock API service that you can run locally goes a long way to help you unblock and just fill it with fake data and get going. Look at you, Mr. Fancy pants with your service.
Starting point is 00:13:27 I just like type JSON into my browser. My mock API services is literally like JSON embedded in that's right page. Yeah. I mean, there's, there's a range of fanciness you could do here. That's the fancier end but you could also literally just like make one record in yeah in your code just copy paste some json into a javascript file or something right yeah yeah that's kind of i mean that'll unblock you but there will be some integration point at some time yeah like eventually you can't ship the product until it's done but you can at least get started look it works for this one record right yeah it might just be kicking the can down the road though where at some point the back end work has to get done that's right i mean that's exactly what it's
Starting point is 00:14:13 doing but kicking the can down the road is beneficial because the distance that you kick the can it closes the total uh time or reduces the total time to delivery so the further you can kick that can down the road the better just nfl punt that thing 70 yards down the road yep yeah that makes sense and i could see this um i mean maybe the the co-founder really is a code champion code sorcerer code sorceress and and a small amount of their dedicated time will help and it's just the calendar time of getting their dedicated time in that case that makes sense as as doing a lot to reduce the total time it'd be hard for interactivity i mean you'd have to do some thing that takes in data but yep i believe in you you can do that yeah why not you
Starting point is 00:14:56 you're a full stack developer yeah you can write to your json array in the browser yeah exactly as well as read from it yep there you go have we solved the problem have we answered the question i think so good luck this it sucks to be bored that's why we expect more questions all right i'll read our next question this is from an anonymous listener hey dave and jameson love the show i've quit my job twice since i started listening so i'm a super fan long story short i think i'm bored with coding i just see everything as moving json around putting it in a database or putting it in queues or on a screen i've done mobile i've done back end i've done front end and it all just starts to look the same after a while. As an industry, I feel we've solved
Starting point is 00:15:39 the hard problems and now it's degraded to this. What do I do next? Do I find a software product where the JSON moving around excites me? For example, a social good or cutting edge product. Do I look at something very different like embedded dev or game dev? No JSON there. Or do I look at tech leadership or people leadership? These options appeal, but I'm just five years into my career and 26 years old and of course no one takes me seriously. However, I have been very deliberate and have been very intense about my career but now i'm feeling a bit done with coding team velocity problems interest me more than json apis people interest me more than code i'd love to hear your thoughts on this thanks and keep up the great work all right huh this is this
Starting point is 00:16:18 is a great question yeah i gotta pull up my linkedin for some research one second i'll i'll let you do the wisdom for a little bit okay what are you researching it'll it'll all come together okay i'm just gonna update it really quick are you just gonna wait while i do my research yes all right so the question asker is 26 i was 27 when i felt the exact same way i was like my work is all the same it's all boring i'm just moving bytes around it's it's there's no exciting technical problems it's just kind of pulling tickets off a queue to smush some data around and i wasn't interested in tech anymore and i wasn't gonna quit tech because i have no other marketable skills but i was just like just bored whereas before i had been very engaged right and
Starting point is 00:17:12 what i actually was was burnt out so i think this could be an explanation for why you're feeling what you're feeling that especially you've been very intense about your career maybe you've been working a lot of hours, focusing very intensely on learning and getting better. And it sounds like there could be some burnout here, which isn't like a permanent change in you, but kind of a temporary state which might resolve itself in time. So that doesn't help in the short term, but it might remove this kind of existential fear of what if I just don't like this kind of programming anymore at all, or programming in general anymore. For me at least, I felt those feelings and then they went away once i kind of took some time to recover and had a change of scenery and what did that
Starting point is 00:17:52 change of scenery look like oh i quit my job was this when you quit my job and didn't have a new job lined up yeah and then i got a different job and that helped for a while but there was still some kind of underlying stuff and then i quit my job again and then went into consulting for a while i do remember this feeling very explicitly of i've been focusing really hard on learning and growing and working really really diligently and i just don't care anymore and i used to care a lot and caring is one of my superpowers like caring a lot is how i make up for not being smart so if i don't care what do i got and i think if i were more mature i would have recognized that and figured out how to deal with it without needing to quit my job i i think it i mean it
Starting point is 00:18:36 worked out okay but that's not always the best solution but that's that was my answer there was to pull the ripcord all right hit the eject button so you went to the extreme immediately yeah i mean even more extreme would have been to just leave the industry and become a lumberjack i have soft weak hands from years of typing at a keyboard they would have mocked me mercilessly oh i have repetitive stress industry from swinging this chainsaw all day like these big bearded guys with giant bellies laughing at me pulling their suspenders yep everyone is paul bunyan that's my imagine that's my mental model of the lumberjack industry nice plaid flannel shirts suspenders yeah big boots big jack boots they're like 40
Starting point is 00:19:26 feet tall isn't that how tall he was blue ox they give up on their chainsaws and just chop stuff down with axes for fun yep chainsaws are too easy yeah okay have like jovial content all right back to software hit me i had a similar experience to the question asker but it wasn't due to burnout um at the time i had been working in the industry for a couple of years but i also had a few websites that i maintained on the side and in my day job i was not doing web stuff and after a couple of websites i realized like these are really boring it was like oh show a list of things show a list of things uh have a form for creating a new thing an edit button for each existing thing and a delete button on each thing and it was at this time that i accidentally coined the acronym
Starting point is 00:20:17 crud having not heard that acronym before you know create read update delete well i'm curious what is that what your acronym was yeah no it was like i came up with this on accident and then later i found out that has that's been in use for years before and i was like oh man these websites are just crud they're just boring yeah and you know you start to notice these patterns right like after the second or third time you've done it you're like wait a minute i'm spending a lot of time to just do this crud thing like what a waste it was about this time that ruby on rails came out so which basically like made all those all those sit-ups go away yeah but yeah like i had i had a similar experience and it was because i was repeating myself like basically doing the same
Starting point is 00:20:56 thing as what this question asker is doing of course we didn't have json at the time this was like 2002 but we had you know just basic crud and for me i don't think i was burned out but for me what i found was that at work i got super engaged it was super exciting because i was working on like signal processing equipment and dealing with weird network protocols and all kinds of like threading race conditions and very challenging like high throughput systems and it was really really fun and engaging and i just basically never got tired of it at work but it was always new like there was always something new coming out it was never just shuffling json around and i never built a crud app really well i did build one i take that back but only one at this job okay so long
Starting point is 00:21:37 story short i think burnout is one possible explanation but it could also just be you're tired of repeating yourself and you do need to switch industries or go into a totally new field within software so i think the question asker mentions a product that's exciting that's definitely one avenue where you can find a lot of meaning in doing the same kind of work if the payoff is like and i and this thing exists in the world that i really want to exist there's maybe i mean maybe it's time to to do the rite of passage and build your own framework that makes it easy to pass json around and now you have framework problems instead of json problems there's also so these things are all pretty straightforward when you don't have scaling
Starting point is 00:22:23 problems but everything gets hard at scale and i think that stuff is pretty fun so you could go you could move json around at scale exactly yeah and then and then you get to do a lot of fun stuff to make it fast and reliable and cheap and perfect and all the things that we get regularly as developers all all the hallmarks of a project i've worked on perfect fast cheap clean code well documented clean code yeah aligned curly braces yep consistently passing unit tests yeah yeah but just just like products without a ton of traction or with a small user base that just kind of move along i i've i've also felt that boredom a little bit and it either has to be connected with a purpose that i feel happy with that oh this json here is going to do this
Starting point is 00:23:15 thing that i care about a lot or it has to get harder and those are both exciting too yeah i feel the same way in fact my last company we were working on a product that i really liked i felt like it did a lot of good it was very useful and our customers loved it and the fact that we were just moving json around and you know putting json in a database taking it out putting it in a browser didn't bother me one bit because i was way more focused on the results on the outcome of what the product was doing more so than the specific technology of moving the json around that helped a lot now it wasn't a social good it wasn't like i was you know serving humanity necessarily but i believe in the product i mean it was socially good in that it paid you money and with
Starting point is 00:23:54 that money you would be happy and a happier dave makes the world better place a happier dave is a social good yeah exactly so i think now that we have that caveat okay should we talk about the last thing that that the question asker asked here should should they move into people management some kind of leadership role so you're 26 how do you do this can you do this you can if you work at a company where 26 is the wise elder experience developer five years five years of experience holy cow tell us what to do please a wise one yep i mean that happened to you more or less right it it did yep everyone was the same age except for one old curmudgeonly 31 year old okay i'm 32 now which is it's so bizarre to think that this person was like the wise elder developer and and they
Starting point is 00:24:47 wanted nothing to do with leadership so yeah it was like by default you could i i think it's fine to look to tech leadership or people leadership i think people could take you seriously if you start exploring that option i think it's not too early if that's something you're really interested in you mentioned you're interested in team velocity um i i think you can still poke at that stuff you might not be able to get hired as a manager but you might i don't know so are you saying like tech lead might be a stepping stone or might be something to get you on board that's what i should have said oh yes okay sorry maybe it it depends on the industry and products and team that you're working on probably i could see places where it would be hard to do that
Starting point is 00:25:32 effectively with with your age and experience level but i could see places where it'd work out okay too and maybe if there's other people on the team to help out that could work but also being a people manager doesn't necessarily have to you don't have to be the oldest and smartest and best at everything to do it it's just a thing that you focus on instead of other things that's right. And sometimes you can be a people manager just because you're the only one willing to set aside the code and do the things that no one else wants to do. And I've seen a lot of companies like that. So I would not let your age be a barrier. However, I would also not expect that you can just quit your job and then go get a engineering management job as your next job. Probably it
Starting point is 00:26:15 would be safer and a more reliable course to try to work your way into leadership in your current company yeah i think it's probably worth explaining with your manager just saying hey i'm interested in this is there anything i can do to kind of poke at it or try it out yeah not not like a big role change or anything but just help out with some stuff right yeah i would do that but i i would probably say i mean you kind of have a fork in the road here you can go jump into management and which by the way is not a one-way door you can go in and come back out not a problem or you can just explore new technologies new like domains within the software industry and there are a lot of them i mean one of the greatest things about being a software engineer is that you can go into so many
Starting point is 00:26:57 different domains i mean virtually every domain has some kind of software need nowadays whether it's medical or research or like i did signal you know i've done signal processing i've done hr software and now i'm working on a voice assistant for crying out loud so it's like these things have nothing to do with each other and i get to go and just learn about these domains and so it could very well be that you want to go explore that before you jump into the management role i don't know i feel like there's a lot of good options for you but i don't think being bored with moving json around is i don't think that's a bad sign necessarily long careers in software usually involve doing a lot of way different things like you said dave so and if you really want to engage
Starting point is 00:27:34 your mental faculties you could just switch from json to xml i was waiting for an xml joke to pop up the problem is you're moving json around what if you were moving protocol buffers around yes perfect whole new world i mean you could just move json around in hard mode and say like we need statically typed functional purity for our services that move json around and write it in haskell yeah that's kind of like the framework problem and that you're not moving json around you're like solving meta problems to help you move json around that's right so that other people can move json around with a few fewer keystrokes yeah well not in this case no one will be able to unless they all learn haskell that's right oh man haskell is like my frenemy language oh really yeah i talk
Starting point is 00:28:24 about it a lot and it has some cool ideas and i'll learn more about it and i've learned some stuff about it but also i like to make fun of it yeah who doesn't it's fun well have we answered the question yeah i think so i i think first of all don't get i would say don't get discouraged um this is a very natural course, especially after four or five years, you kind of have to figure out, I don't know, you kind of have to figure this out, I think, and work through it. But I think it's a pretty common issue that developers face after four or five years. The other thing that I might suggest, just one last thing, is I have found that it helps to have kind of ups and downs, where you'll have times where you're aggressively coding and just moving JSON around
Starting point is 00:28:58 like crazy, maybe for a few months at a time. Just moving the JSON so fast. Yeah. It's flying all around and then and then maybe have a couple of months where you're focusing more on like architecture or operational issues or infrastructure or something else kind of varying your workload so that it's you're kind of reaching at a different part of your menu and that was a weird metaphor but you know it's like you don't want to eat the same food every day and and i think you don't want to work with the same technology every day and at least for me i like to vary it up and so maybe that could be like the lowest barrier way to get out of this funk where you can just explore different parts of your already existing software system at your current job yeah yeah maybe you
Starting point is 00:29:40 want to make your builds go fast that's always a thing you can do there's there's always like developer uh workflow improvements to be done of course then you'll find out that your builds are actually just moving json manifest files yeah but it's what makes the world go round it is so true it is so true as my heart beats it is pumping json around my veins sending little messages throughout my body saying hey keep existing yep little json payloads yep lots all these it's kind of a hybrid mic microservices monolith architecture little messages that say keep alive yep okay have we answered the question i think so good luck we've done our duty
Starting point is 00:30:31 have fun yeah and if people want their own questions answered they can go to soft skills dot audio click ask a question if you enjoy the show please share on twitter probably other ways too but i don't know i don't look at them as much i guess they don't have their hooks as deeply in yeah and we will catch you next week I'll see you next time.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.