Soft Skills Engineering - Episode 176: Afraid to disappoint and tech co-founder advice
Episode Date: September 23, 2019In this episode, Dave and Jamison answer these questions: I am a junior developer with a low salary but I’m happy with my job. Recently, a personal/family problem occurred I needed mor...e money to pay for it. I am three months away from my EOC (end of contract). I’ve found a job referral from my dear friend with higher salary and more benefits and I’m planning to apply. But after told my manager about my plans on leaving they told me they wanted to assign me to a top priority project they thought I could handle. I am so worried to disappoint them. They’re offering a raise but it’s not close to the other job. I’m afraid to ask for more because I don’t feel confident with my skills and I believe other people deserving it more. What are your thoughts? Hi guys, I am starting up a company in a few weeks together with a friend of mine. I’ll be the only developer in our new firm (for now!), while he’s got the domain knowledge. I’m not so worried about getting the tech stuff up and running. I get no constraints when it comes to the tech stack I choose, which is fantastic! What worries me is how to get into this brand new domain as quickly as possible, so I am able to deliver some value (MVP). Do you have any tips for how to go about this? I know I am not going to be an expert in the field, so at some point I just have to accept that and start coding. Anyways, I’ll learn more on the way.. Thanks for a great show btw, Regards from Runar in Norway
Transcript
Discussion (0)
it takes more than an insane amount of stickers on your laptop lib to be a great engineer this
is episode 176 of the soft skills engineering podcast i'm your host dave smith i'm your host
jameson dance soft skills engineering is a weekly advice show for software developers about the
non-software stuff that goes into software i took my laptop in to get it repaired last week
and the guy who took it had a bunch of tattoos all over him this huge very muscular dude and he saw
my laptop stickers and i feel like i got tattoo cred for having stickers on my laptop it felt
great we bonded nice so tattoos for people who are scared of needles i guess that's right
all right i'm gonna thank our wonderful patrons thank you so much to the folks who are supporting
the show at the level where we shout them out every episode thank you to matthew voidovich
the agile ventures charity ted nugent crash bandicoot zach rannan this engineer goes up to 11
louis santos nick cantar vinlock taras karuk sean sunny tie dimitri yanson britney ellick florian
tatsal sonic the hedgehog iva robotnik marie rousseau chris hogan and stanley tactical radio
thank you to those people and everyone else who's supporting the show if you would like to join them
you can click on support us on patreon on our website at softskills.audio and you will get to
join our slack and have great conversations and all of your wildest dreams will also come true
that's right i promise that's right maybe not your wildest wildest but you know pretty pretty
wild well i didn't say when could take a while shall i read our first question yeah read our
first question okay i will read our first question this is from an anonymous listener who writes in
and says i am a junior developer with a low salary but i'm happy with my job recently a personal
slash family problem occurred and I needed more money to pay for it. I am three months away from
my end of contract. I found a job referral from my dear friend with a higher salary and more benefits
and I am planning to apply. But after I told my manager about my plans of leaving, they told me
they wanted to assign me a top priority project that they thought I could handle. I am so worried
to disappoint them. They're offering a raise, but it's not close to the other job. I'm afraid to ask
for more because i don't feel confident with my skills and i believe other people deserve it more
what are your thoughts oh what a dear friend like dear friends give you job offers for a lot more
money that's awesome the true friend yeah we should all have friends like that but wouldn't
it be better if your friend just gave you money i think that's your best friend so you have one
best friend who gives you money and several dear friends who help you find better friends better
best friends that give you more money okay got it and then they get a cut so they're like friend
agents oh boy it's a downline yeah it is an mlm for true friendship that's right
you thought you couldn't buy friends you just didn't have the right marketing platform
all right so what do you do you'd love to have the money but you also don't want to disappoint your
current employers why i mean disappoint them by going to a different job that pays you more
i'm so disappointed in you turn it around on them and say what would you do in my situation
i can see you having this perception of i'm very important to them and and they really value my
contributions and so it will be very painful for them if i leave but people leave jobs all the time
and it's not the end of the world and people left behind figure it out very few people take it
personally yeah and if you quit in a professional manner and someone still takes it personally then
they're kind of a turd like that's true you don't want to appease the turds that's right
feed the trolls yeah they'll get over it they'll hire someone else and they'll be sad because they
lost out on this great deal they were getting on you but that's fine i actually felt this way when
i quit my very first job out of college oh i did too i i was terrified and i apologized a bunch for
quitting and yeah i felt horrible what did they say when you were like you know groveling i i
honestly don't remember but i think it was like why do you care that much i was i was a part-time
employee like i wasn't even yeah it was it was weird when i quit my first job i remember just
feeling so guilty like i was leaving these this team in a lurch it was it was a group of engineers
who had been together for like decades and i just felt like i was stabbing them in the back like
they had let me into their club and now i'm walking away you know but i remember one of them
was just very frank with me and was like don't worry about it this company will be fine and it
was it was like a 20 raise and he was like you should go you should definitely go and i was like
oh okay but i still couldn't look the manager in the eyes i just felt so guilty well it's not like
if you look them in the eye then you get the raise like there's not a prize it's like a carnival
challenge or something eye contact so one wrinkle here is this is a sounds like a job opportunity
not an offer right and if you really want this to work out either to stay and get the raise that you
could get by leaving or to leave you you should have an offer in hand i know dave we go back and
forth about this but i feel like a junior developer who's pretty underpaid that's a situation when
it's not at all bad to say hey i have this offer for a large raise and you could even frame it how
you framed it in this question i i don't want to disappoint you i really want to work on this
project but i just can't take the financial hit that it would cause me to pass up this offer so
i think my advice is go get that offer go apply for the job be prepared to leave for more money
because that's what it sounds like you kind of want and what you need actually for your situation
but give your current company an opportunity to match it yeah and and having that number makes
it easier if they give you a raise which it sounds like they have it's hard to just say
that's not enough sorry nope i reject it and you slide the piece of paper back over the table
but if you instead can say that's not enough to make it worthwhile to pass up this other offer
if you have some data that's not just like i would like more money please right then it's a much more
straightforward conversation to have and i think it'll it'll come across less like you being really
greedy because you're not you're not just saying give me more money you're saying it will cost me
a lot of money to stay here because i have this other offer yes that's a very good point in fact
that point became sharp to me when I was in a management role a few years ago, maybe four or
five years ago. And one of my employees had gotten another job that was going to pay them more. And
they had told me, you know, I'll stay for this amount of time. And I said, can we get one extra
week out of you? And he looked right back at me and he goes, you know, that's going to cost me
money. And I was like, oh, that's right. Yeah. Because you are going to make more at this new
job. So, hmm. And probably now I would have read between the lines and said, okay, we'll pay you
a retention incentive to bridge that gap but now i was just like yeah okay anyway
well you love me don't you that's what you should have said always guilt trip that's right
teammates that's right what about this feeling of not being confident about asking for more
and not feeling like you deserve it yeah or that other people deserve it more than you
Yeah, like maybe there's a very talented developer there that you assume just gets all the money that you don't take for yourself.
Yeah, and I think, first of all, this is a very human thought of you, and it shows that you have a heart.
So, good on you.
With money, you can buy a new heart, though.
A better, stronger one.
An arc reactor.
Yeah.
But let's not think of this as a zero-sum game.
I mean, there is a fixed amount of money in a company, of course.
but it's usually especially when situations like this when you're considering leaving
it's not typically the case that if you get a slightly larger raise than you would have gotten
that someone else is going to have to get no raise or reduced raise and even as I say that
I know that at some companies that is actually the case it is a zero-sum game yeah but I think
in most growing businesses it is not a zero-sum game because the pie is growing yeah that makes
sense I agree that it's not gonna harm other people being confident in your skills I think
that's where the offer helps again where if you go out and interview with this other company and
you get an offer from them that's a mark of approval that this other company wants you and
values you that's right you also have the validation of your manager saying hey we want to give you
this important project that we really think you can do great at so i think you have some external
evidence showing that you do deserve it and it's not bad yeah not bad at all and the only way to
get confidence in this sort of thing is to do it and try it and see how it goes yeah i think as the
kids say, secure the bag. That's my advice. Secure it. Lock it down. Yeah. Well, have we
answered the question? I think so. Yeah. I think the answer is you probably did things in a slightly
out of order here. You've got this opportunity, but not a secure job offer. And you went ahead
and talked to your management about it. You could probably have a more concrete discussion if you
had an offer in hand, like Jameson said. And I wouldn't feel one bit bad or guilty about asking
for them to match it in your situation. Oh, what about, I forgot to talk explicitly about this
last thing. What about the financial need that they have? Do you think it's worth bringing up?
Maybe it's a medical thing or I don't know. Is it worth bringing up or should it not matter at all?
You know, it's a really good question. I think it can be tempting to share personal information in
these kinds of negotiations to try to show a need. But at the end of the day, your needs and
the business's needs have basically nothing to do with each other. And I don't think that will help
you at the negotiating table to say, I know you're considering two people for raises this year, but
i just had a child go through chemotherapy or something awful and expensive you know yeah i
think that that will just pollute the conversation and make it harder to talk about and bring a bunch
of emotions in when really what you should be saying to incentivize the business is i am going
to do a great job for you i am worth this money for the business for you and i would not talk so
much about why your needs are now great and you need this money that's my personal opinion i agree
that i think that makes sense turns what should be kind of a business discussion into a more
personal one and there's all kinds of weird stuff that can happen there maybe they'll get mad at you
like why why are you trying to guilt me into giving you more money or exactly i think you
have a strong case without sometimes i like to turn these things around and put myself in the
shoes of the other side and say okay like let's say i was going to buy a new car and there were
two car sales people selling me a car similar cars you know similar value similar price but
one of them had a great financial need. One of them said, I need this. I've got gambling debts.
Please buy the car from me. I mean, it would really tug at my heartstrings, but it would
also make the whole conversation just super awkward. Oh, I would absolutely not buy a car
from that person. If they were like, you got to buy this from me. I'm like, I don't want to know.
You're making this transaction personal. You're saying that you're a heartless
robot with no soul. Oh, yeah. Okay. Yeah. I've made enough money to replace my soul
with a small battery that recharges when i walk around by the way the next time someone accuses
you of being a robot the correct answer is affirmative why wouldn't it be like negatory
i am not a robot all right i think now we've probably answered the question good enough good
luck i will read our next question this is from a listener named runar sorry because i probably
mispronounced it hey guys i'm starting up a company in a few weeks together with a friend
of mine i'll be the only developer in our new firm for now while he's got the domain knowledge i am
not so worried about getting the tech stuff up and running i have no constraints when it comes to the
tech stack i choose which is fantastic what worries me is how to get into this brand new domain as
quickly as possible so i am able to deliver some value or an mvp which stands for minimum viable
product do you have any tips for how to go about this i know i am not going to be an expert in the
field so at some point i just have to accept that and start coding anyways i'll learn more on the
way thanks for a great show by the way regards from runar in norway hey cool norway cool that
is cool cool country yeah it is literally cool temperature wise so what should runar do one way
or another this is going to be very exciting and memorable this is probably a phase of your life
you'll never forget yeah so that's super cool unless the lack of sleep causes you to just lose
long-term memory and damages your brain or you're successful enough that you can afford a lavish
excessive lifestyle and damage your brain that way okay but mostly you'll remember it so you're
saying there's many ways to forget yeah uh that sounds like the first line of like a sad victorian
novel there are many ways to forget yeah so how do you come up to speed in a new domain and you
know, this is one of the coolest things about being a software engineer, I think, is that you
get to jump feet first, both feet into the deep end of new domains all the time, especially these
days when people change jobs so much. I mean, I look back over my career, you know, I've worked
in signal processing. I've worked in HR technology. I'm now working on a voice assistant. I mean,
it's like these things have nothing to do with each other. So learning to ramp up in a new domain
is a good skill, whether you're starting a startup or just starting a new job. Yeah. It does feel
especially important when you are building a product. So I'm thinking of how I ramped up in
the problem domain at my current job. And I just did a bad job at it for like six months. And by
the end of six months, I knew more about the domain. So maybe you should plan just to do a
really bad job. Hopefully your partner can provide a lot of that experience and has some product
skills. I guess, well, I like what you said about tech being a tool that you can apply to a bunch
of different problems i also think product skills as in kind of product development and product
ownership those are also skills that you can learn independent of the problem domain and learning the
problem domain is part of building a good product but i think if your business partner is a domain
expert but not necessarily an expert at building software or kind of gathering requirements or
validating solutions or things like that you could kind of lean on them a little bit more for the
domain knowledge and provide the product chops if that makes sense okay so your business partner
has the broad overview of what it's like to work in that domain and you can work with them to
validate like what problems should we tackle first and then which solutions make sense and kind of
develop the experience while you're still providing value that way yeah you don't have to sit down and
just know everything about i don't know john deere tractors i'm gonna assume this is a tractor
related startup startup just a typical textbook startup we're gonna revolutionize the john deere
tractor repair industry. Okay. So what do you do? So that wasn't practical advice though. That was
just like, do your job while you learn. Yeah. But there's this question of how do I start coding
when I don't know anything? Right. Hopefully you have some product idea. You're starting a
company. I mean, I don't want to rain on the parade, but if you don't know at all what to
build, you should have thought of that before starting a company. It doesn't have to be right,
But it should have, you should have some kind of idea.
Yeah, true.
So let's assume they have some kind of product idea.
And now the question is, how does this person, Runar, develop the domain expertise to actually
build the right product with the right stuff?
And I would say that no matter what, every company at the end of the day exists for one
reason, which is to serve some kind of person.
And, you know, whether you're building a service or a product that gets purchased, at some
point that product or service is doing a job for some human being.
If you can find those human beings and sit down with them and have them describe their situation to you, that will go a really long way to developing the empathy you need to learn this domain, especially if it's a super technical domain or some deep expertise that's not just common that you could just draw on your own life from.
Yeah. So talk to users, figure out what it's like to work in that domain, basically.
I mean, what if it is really technical? Is it worth trying to study up on it? What if it's some,
I don't know, biomedical thing and the developer doesn't have much of a science or medicine
background? Do you think it's worth trying to gather some of that background knowledge as well?
I mean, step one, you're going to have to take the SAT so you can get a really good score and get
into Harvard Medical School. Okay. Step one. Got it. All right. What's step two?
Don't worry, you'll never get through step one.
Oh, shoot.
If it is technical, I think, you know,
I went into a really technical industry
about 15 years ago of signal processing.
And what I found was that there was a few experts
who just had like Yoda levels of mastery of the domain
and then a whole bunch of people
with very much less expertise.
And what I did is I would actually ask them,
like, what should I do?
What books should I read?
What resources should I consume?
And they actually recommended some books
and they were super dense technical books.
And I pulled them down from their shelves
and borrowed them and just dug through these books
to try to understand the domain.
And it helped a lot to give me a foundation
in signal processing.
I can still talk to you about the T1, the T-carrier.
If you remember back in the day,
T1 was like the super high-speed internet access.
Yeah.
But I can tell you like how that whole thing evolved,
like how it started with voice grade channels
and all that stuff.
It was so cool to learn all this stuff
and it helped a lot to have a good foundation there.
So if you're in a technical field,
I would not shy away from reading technical books
about the subject.
You can tell us about it and you will for the rest of the podcast.
Yeah, I think it'd be great to gather background information, even if it's not a technical field.
There's culture and practices around any problem domain.
So if it's something a little softer, maybe you're building like a store for art or something like that.
You should know stuff about art.
Also, to go along with your earlier advice of talking to users, especially in the very beginning when you are getting up to speed and don't have as much knowledge and context.
it would make a lot of sense to try and find a friendly patient person because not every user
will just want to start from the beginning and explain all of their field to you they want to
be able to talk about their problems and how it affects their life and if you don't have the
background to understand them it might not be as helpful so you probably need kind of tiers of
people you can come to for kind of general questions and baseline knowledge things that
are good at explaining it and happy to explain it maybe that's your partner maybe that's an
interested beta user or something like that but i feel like it makes sense to have kind of one or
two go-to people to give you broad background stuff yeah good idea all right so the other side
of this question is technology runar mentions that he has no constraints when it comes to the
tech stack he chooses which is fantastic but how does he get into the domain and this is when you
just rub your hands together and you go wild i'll use one of these and one of these and we'll use
WebAssembly, write it in Rust. Exactly. I think that as a technical co-founder, it is so important
that you choose technologies that will keep you free to quickly iterate. And like you said,
stay focused on the domain. If you turn the startup upside down and make it all about the
technology stack, you are more likely to fail, I think. Whereas you must always remember this
tech stack is always a means to an end. And I think there's two different things you need to
keep in mind when choosing. The first one is, for every technical choice, you have to think,
will this give me more time or less time to focus on the business? For example, am I going to have
to spend a bunch of time installing this, doing monthly patches and updates on this thing? Or is
this going to be managed by some other company and I just throw them a monthly fee? And for a
startup, my recommendation is always do the monthly fee thing and just outsource the heck
out of that stuff and let other people take all the maintenance and infrastructure burden.
And then number two is, and we can go into these more later, but number two is when you're choosing technologies, you should be mindful of the community that is part of that technology and see if they are going to be the kind of folks that will be a good fit for what you're trying to do with your business.
And a good way to do that is to go to meetups for different technologies and see what kind of people you find there.
And then you can say like, yeah, this is going to work for my business in my sector, for my John Deere tractors.
Yeah, this will help me build the best repair parts store.
That's right.
These people are passionate about John Deere tractors, this programming community.
have you heard of boringtechnology.club no it is a i think it's a talk that got turned into a
website because it lends itself to like a manifesto i guess it's a talk from a guy who worked at etsy
quite a while ago called choose boring technology and the thesis of the talk is that you have a
limited amount of innovation space okay and he calls them innovation tokens and you don't want
to use those innovation tokens on cutting edge or unfamiliar technology you want to use them
on the problem domain so in your case that would be understanding the product and building cool
solutions not necessarily in building like distributed graph database to handle your two
customers or whatever yeah and i gotta correct you there because cool solutions is maybe the
wrong term because you might think well cool to me like cool from an engineering fun perspective
but what you want to build is useful stuff for your customers or target users right yeah i think
the tech stack specifically mentioned in this talk is like php and mysql and that's a little
bit dated i mean it still works fine but the point isn't use that specific tech stack the point is
they were very very very familiar and comfortable with php and mysql and they could have used other
things and it would have resulted in needing to do a lot more investment into the tech and would
have hurt their ability to deliver product so it kind of goes along with the sas thing basically
like you don't want to choose this time to pick up a new programming paradigm or you can but you're
spending some of your innovation tokens basically on that instead of on making the business work
i like that that's great yeah i love this talk it's fantastic and then i still like go off and
poke at new technology anyways you can't tell me what to do website but you wouldn't do that
when your whole startup is on the line no i don't think i would you probably would let's be honest
no i wouldn't i don't think i would i'd be terrified of losing all our money because i
don't know how to write a mona and transformer well we we spent all our vc money it cost seven
million dollars to teach jameson so i hope it paid off you mentioned sass which if you don't
know that stands for software as a service capital s lowercase a lowercase a capital s
worst acronym ever at a startup i use sass products for everything for your alarming
solutions your bug tracking your revision control hosting everything you can so that your mind
doesn't have to be on any of that stuff and i try to keep i would well i say i try because when i
was at a startup this is how we operated and it was great now as you mature you can't keep doing
these things but at an early early stage startup you want to build everything you can with an eye
toward replacing it to know that what you build today first of all your company may not exist next
year secondly your needs of your customers and the needs of the business will change next year
So you need to make everything super easy to replace, to pivot away from, and delete.
So as you're writing code, as you're choosing technologies, think, how hard will it be to
delete this in the future?
How do you balance?
I mean, doesn't that take longer than just writing it?
What do you mean?
Writing it so it's easy to delete?
That's what I mean.
That takes longer though, right?
How do you know how much time to invest?
There's presumably some trade-off where the more time you put into designing it, the easier
to delete you can make it.
I see what you're saying.
I wasn't thinking that you would put in a bunch of upfront design work to make something
like super modular and deletable.
More like what I was saying was, for example, if you're going to, I mean, say you're going
to send out SMS messages, you could invest a bunch of time in like learning Asterix and
building your own PBX and all that stuff.
Or you could just use Twilio.
And it's like, it's much easier to cancel a Twilio subscription than it is to like tear
down your integrations with your Asterix server.
Yeah.
Like throw away a year of engineering time or whatever.
Exactly.
Okay.
That makes sense.
Got it.
well i totally agree cool this is an interesting wrinkle because we talk a lot about getting up
to speed on new technology but i haven't thought a lot about how do you get up to speed faster on
the problem domain yeah it is one of my favorite parts of being a software developer though i agree
with what you said earlier that it's so fun to just take this general tool set and apply it to
specialist problems and people that are experts in those fields it's fun to talk to them and they
get convinced that i'm smart because i know how to write code when i think they're smart because
they know how to i don't know translate languages or whatever the problem domain is huh well have
we answered it i think so i think this is going to be super fun for you and such a great learning
opportunity i'm actually kind of jealous i'll be honest that will be one percent please
we won't even need a seat on the board
well run our good luck i hope it goes really well and exciting times for you what should people do
if they want their own questions answered go to softskills.audio and click ask a question fill
out the form there and just go crazy thank you so much to everyone who's asked questions we love it
what can people do if they want to support the show go to softskills.audio and click support
us on patreon or share it with other people that's the other way to support us thank you
for listening we'll catch you next week
