Soft Skills Engineering - Episode 1: Startup Opportunities and Switching Jobs
Episode Date: March 7, 2016Welcome to Soft Skills Engineering, where we answer your questions about non-technical topics in software engineering. Come get some wisdom, or at least some wise cracks. In episode 1, Dave and Jamis...on answer two questions: I’m a developer who gets approached from time to time to work on new software ideas. While I find working on something new and intriguing I have no experience with business. How do I determine how legitimate these opportunities are? At my current job, our codebase is a few years old and we use an “older” javascript framework. In my spare time I’ve really really enjoyed using one of the newer paradigms and technical stacks and I wish I had more opportunity to get experience with these technologies. I don’t see a rewrite or even a migration any time soon for our codebase at this company and have been considering taking a job where I’d have opportunity to work with these newer technologies. This despite enjoying my coworkers, and lacking any major complaints at this company. On a scale from 1 to 10 how crazy am I for considering a job change?
Transcript
Discussion (0)
Hello, everybody, and welcome to Soft Skills Engineering, our inaugural episode where we discuss the things that most podcast shows about software development don't discuss, which is all the other things that aren't technical, but are nonetheless, I'd say, pretty important.
So I'm Dave Smith.
I'm Jameson Dance.
And let's get right into this.
okay we have a question from a friend who says i'm a developer who gets approached from time to
time while working on new ideas uh i already messed that up i'm a developer who gets approached
from time to time to work on new software ideas while i find working on something new intriguing
i have no experience with business how do i determine how legitimate these opportunities are
yeah this is this is really hard don't you think to like actually determine the legitimacy of a
business um i think my default answer is they're all illegitimate until they have money but then
you miss out on a lot of stuff too like you mentioned too that this could also be with like
contracting or yeah uh it's like recruiting from just other companies yeah yeah or or like your
friend with an app idea do we want to break it down by those or yeah sure so let's let's start
with the easy one which is i think when a recruiter emails you or you get yet another
linkedin message and you want to decide whether it's legitimate or not i guess it's usually pretty
easy to tell those are legitimate but it's harder to know whether you should actually give them any
time i actually i've never considered whether they're legitimate i just assume like yeah someone
is talking to me on linkedin they wouldn't just make it up what do you mean by legitimate like a
good opportunity i'm guessing that that's what he means is like am i going to make a ton of money
doing this or it's a total bust yeah so i think it depends if their name is an acronym that's like
software solutions business corporation or something then it's probably a bust that's how i
like the more random business words are in their name the less interesting it's gonna be
nice okay so what's the next scenario we have uh freelance work maybe yeah yeah so generally
speaking i found that when people approach you to do freelance work they usually have like a very
clear uh like payment they're gonna they have some amount of time like a term maybe it's like
a three-month term and they want to pay you x amount of dollars per hour for this many hours
per week um and i've very i've done a few of those and i haven't heard of many people getting
screwed on those and like walking away with nothing after spending 90 hours on a project right
those already sound like they have a lot more structure than some freelance things though like
Some of them are just like, how much do I pay a coder to build a website for my grandma?
Or if they come to you and say, we'll pay you in money if we have it, but if we don't, we'll pay you in stickers.
That's probably not legit.
They're really good stickers.
Those ones seem less interesting than the equity one, though, or the cool idea one.
Yeah, so I've got this great app idea, and I'm going to give you 20% ownership in this company that I haven't actually created yet, but I promise you'll get it.
What do you do?
or what i mean they can like write it on a napkin too like sign this napkin you you are now the cto
if you have a signed napkin you're probably good yeah i'd say go for it if you have something that
you can frame and then tell a cool story about later um i've heard it uh i've heard this saying
that you only either work for free or for your rate you never work for like a chunk of it so
if someone can pay you but they can't pay you enough for your time you're going to be in this
weird situation where it's like, uh, you feel bad for not working as hard, but they're not paying
you enough money to, to devote your whole time to it. So I think it's, you kind of either have
to go all in and say like, yeah, I'm going to work on this as a business, or I'm going to take
a salary. Like it's not too different from the normal salary I would expect. Yeah. Yeah. I
actually had a friend who moved out to the Bay area about a year ago and he called me up, um,
a month or two ago and said, uh, I've got this guy I've been working with on weekends,
just working on this fun project. And now we've got something, it's starting to become
almost product like, and, uh, he wants to ask me to quit my day job and work full time for him.
And, um, you know, what do I do? Is this a good idea? And so I asked him mostly like
the very first questions I asked are the obvious ones, which are like, okay, does this guy have
the means to pay you? You know? And it's like, but these are questions you should ask the person,
like can you pay me and how much um and i think a lot of times as developers we're kind of afraid
of these conversations like oh we can't talk about money like we can only talk about technical stuff
you know but you need to and i think most people feel really comfortable answering those questions
and then i was like is he willing to give you anything in writing um and uh you know he's like
oh that never occurred to me to ask for something in writing but i think that you should like you
absolutely should you're entering a business arrangement and so if they're not willing to
pay you and offer it in writing, I think it's probably, it could very well be illegitimate.
I owe you 20%.
Yeah.
Boom.
Like, don't worry.
You get 20%.
That's a good point, though.
It doesn't have to be super formal.
It's maybe more just the act of writing it down will kind of cement some.
Are you saying go to like a lawyer?
Oh, that's a good question.
I didn't, in this particular case, I didn't advise him to talk to an attorney, but, and
i probably wouldn't have like it didn't seem like that big of a commitment that's probably always
advice that you could give someone that would never be wrong to like where do you want to go
for lunch talk to an attorney to make sure yeah um in the end this guy decided not to do it because
i think he found out that he actually you know he had a life and expenses and this particular
opportunity just couldn't really pay for him to live so i think that's actually a really good
thing a good like disqualifying criteria to say if i'm going to quit my day job and go work on
this thing will i be able to pay my bills you know and if the answer is no and you're not willing to
go into debt to like fund yourself for a few months while you do this then you probably it's
probably not the right opportunity for you this probably has a lot to do with your stage in life
too um oh yeah if you're a student the opportunity cost is way lower to just sure work for free on
something than if than if you're kind of in an established career um that's also kind of an
argument too for keeping your expenses low throughout your career because then you have
more freedom if you yeah have high living expenses then uh you just can't take some
opportunities if some of these are good but they don't have money to pay you then then
that might be tricky if if you're kind of living paycheck to paycheck um also i think like if
you're super interested in it that can change things too if you're like oh i've always wanted
to do this like i've always wanted to make uber for cats for dogs yeah no competitor
we'll crush them
um i think i'm personally more risk averse than than some people so i i don't think i would ever
just quit my job to work on some random idea with someone i think i would only want to like
co-found something together with someone i would never want to go in as as already having this
hierarchy where there's the ceo of nothing and he's the boss of me telling me what to build that
would be it sounds not very fun and and not as exciting and not worth the risk so you'd be more
interested in like a partnership yeah yeah i think so i mean it'd have to be it'd be a very
unique situation that would make me do it but i i would never go for just like hey i need a coder
sure how how little of the company can i give away to this person yeah yeah you'd be a technical
co-founder there's some really good questions you can ask that person going into that situation to
gauge that too like does this person have any clue technically or are they just going to be
like hounding you about why isn't it done yet you know and are they do they want uh like speed or
do they want like super high quality you know yeah what are their plans for growing the team
in the future and these are all questions that a serious business person who's getting who's
really getting into this for real they will have answers for these things but then i mean how many
good ideas have come out of people that have no idea what they're doing too so if you say only
that you'll you'll only talk to people that have their act together you're gonna miss out on yeah
some stuff too so you'll eliminate a bunch of false positives yeah i get some false negatives
Is that what you're saying?
Yeah.
Yeah.
Like, I guess I don't know that much about the early history of Google, but they, I imagine
they were just working on cool stuff.
I mean, they were PhDs at Stanford or something.
So that's probably, it's probably a good sign that they're smart at least.
But I mean, maybe they didn't have some grand vision or business plan.
They probably didn't.
But statistically speaking, like this opportunity that just presented itself to you is not Google.
Yeah.
It's like, don't worry about that.
That's true.
At least that's how I would put it.
Good call.
Like you just, I'm sitting on the next Google.
No, you're really not.
Yeah, that's actually probably a good warning sign too.
If they tell you about the potential upside and talk about Google at all, then maybe they have unrealistic expectations.
I think most ideas need to have at least somewhat clear of a path to monetization.
Excuse me.
And again, this is one of those things that may be hard for software developers to talk about.
but it's like how is this going to be a viable project you know and maybe it's not a maybe it's
not for profit maybe it is but in any case they need to have some kind of path you know if it's
like well we're just going to get a lot of users and then figure that out later i like to hear
people say like well we're going to get a lot of users and then we have these partnerships that we
think could be really lucrative based on these you know past experiences and things like that
all these things lend legitimacy so so i personally agree with that but that kind of
flies in the face of how a lot of technology works though i mean snapchat is like you just
don't know up front well no you just have no idea you just do get a lot of users i mean and then
figure it out after that yeah and you raise bajillions of dollars of vc funding and then you
have a lot of money and then and then dot dot dot and then you sell to facebook yeah i don't know
what the end goal of that is but but for a while you sure are pretty rich so so who cares what the
end goal. Yeah, I guess that is the end goal. Raise a lot of VC money. That's also in the
statistical minority, probably. Yeah, you can get that kind of path. But I'll tell a story about one.
So Mosey, some people may know as a Utah startup, I think, I think 10 years ago or more, they started
here in Utah. And I talked to the founder of Mosey and was considering coming on the team at the time
and they had a really clear path to monetization. They were like, we're going to offer a backup
service that people can install on their
computers and will backup their whole hard drive
to the internet. And this was
revolutionary at the time because storage was way
more expensive back then, 10 years ago, and you just couldn't
do that. And their
monetization strategy was, we'll just send them
advertising. And I was like,
okay, so it's going to be free for everyone
and then we'll send you targeted ads
based on the files that you
upload to us. Oh my goodness.
And, um,
yeah, I know. Okay. They were like, don't
worry, we can't see the contents of the files, but we will know
the file names so we can send
certain slightly targeted ads.
Anyway, but really quickly
after that they realized that people were willing to
pay like five or ten bucks a month to do
backup and people signed up in droves
so they pivoted and quit.
But the important thing is, or they didn't quit, they just abandoned
the advertising strategy and went straight to
a no ads paid service.
But the point is from day one they had a really
clear path and they had
I'll put air quotes up, they had a business model
and I'm not qualified
And I think most engineers are not qualified to evaluate the viability of a business model.
But at least if you have one and you can talk about it sanely, I think it lends legitimacy to your project.
Yeah. You mentioned ads.
And there are so many companies that work in the ad space, either like on the seller side or whose business model is users, question mark, question mark, question mark, ads, and then dollar sign, dollar sign, dollar sign.
And for me personally, that's not appealing.
I don't want to sell ads to people.
So there's probably some kind of like personal preferences that go into the ideas that you want to pursue as well.
Or maybe, I mean, lots of people made lots of money that way too.
So if that's your kind of driving concern, then there's a clear path to money that way too.
Certainly.
There's also more to legitimacy than just making money.
This is a little bit of a joke, but when I talked to the Mosey engineering team, they said,
yeah we basically work for a spammer and they said it tongue-in-cheek um but you know you can
think other companies have a legitimate business plan for making money but like you're just like
i am so not on board with this idea you know like sure um certainly happens yep uh so i want to go
with that is that um sometimes legitimacy just means like is this project even going to be viable
and successful and i think that's a place where you can assess that like take a look at what
they're trying to accomplish and say is this even feasible like a lot of times people especially
non-engineers will approach engineers with ideas that are just like dumb and they're dumb because
they're not technically viable or they have their scope is just so huge and they don't realize just
how huge it is they're like you know we're gonna build facebook for uber for cats for dogs it's
like gonna be great yeah it's like oh you guys have no idea what you're talking possibilities
are endless well i think we've uh completely answered that question and no one will ever
have any doubts about what they should do for any business opportunity from now on just follow our
simple recipe yeah the simple recipe of shrug yeah this is a hard one because they're it's so
personal and and yeah it depends so much on you and the other person and the idea and the market
and where you are in life and i will say that uh you should definitely take your time when making
a big decision about whether to quit your job and jump on some new opportunity and you should ask
lots and lots of questions like if you've only asked four or five questions then you are not
even close like i'd say you need to get to where you've asked at least several dozen questions and
felt pretty confident in the answers you know otherwise you've just scratched the surface
yep just like we just did yeah service scratched should we move to our next question let's do it
Do you want to read it?
Yeah, I'll read this one.
All right.
This question says, my current job, our code base is a few years old, and we use an air quotes older JavaScript framework.
Oh, so like React 2 or...
Yeah.
So like older than three weeks old.
Yeah.
In my spare time, I've really, really enjoyed using one of the newer paradigms and technical stacks, and I wish I had more opportunity to get experience with these technologies.
I don't see a rewrite or even a migration anytime soon for our code base at this company,
and I've been considering taking a job where I have opportunity to work with these newer technologies.
This despite enjoying my coworkers and liking any major complaints at this company.
On a scale from 1 to 10, how crazy am I for considering a job change?
Remember, this is a one-number answer.
On a scale from 1 to 10, I'm going to hedge my bets and say 5.
Flip a coin.
Yeah.
that's how crazy you are yep what do you think jameson this is a really good question um and i
have thought about this a lot but i probably have no good answers because it's a it's a tricky
problem so i've um my whole career has basically been on the the air quotes cutting edge i mean
there's always something newer but but on the whole spectrum of software technologies i think
i've mostly worked on things that most people would consider to be new um so i have a biased
viewpoint of this because because that stuff is exciting to me i think there's there's
there are a lot of different motivations for working somewhere but you could look at it as
two different ways one is you're you're there um for how the work gets done and the other one is
you're there for what work gets done so if you're uh you can be really focused on the product and
on the users and delivering a good user experience
and kind of having faster iteration cycles and fewer bugs
and just kind of making the, producing something good.
Or you can be really focused on how you get the work done
and you're always kind of reading blog posts about cool ideas
on new frameworks or new ES 21,000 technologies or whatever.
That's ES 20XD6.
Yeah, 20XD6, exactly.
um and and and that can be how you get satisfaction and i think they're both valid
ways and and they might lend themselves to different kinds of companies or different
kinds of problems but you probably need to figure out what excites you if you get more excited about
someone using your product and being happy then it it doesn't matter as much what tech stack you use
but if you are really interested in in kind of what's new and what's cool and and stuff like
that then maybe there might be more room at a company that's focused more on developer productivity
like they have a large enough team that they can spend some time and some engineers looking at new
technologies and helping pick what direction they should go and stuff like that so you kind of have
to figure out what you prefer i'm guessing based on the way this question is worded that using a
modern technology stack is actually really important to this person um and i'm gonna say
like that's the number one thing i would respond with is um figure out what's important to you
like i know lots of developers who are perfectly happy like coming to work doing their work being
proud of their work but the particular tech stack they're using is like not super important to them
like they can find challenge and enjoyment in building regardless of the tooling that they are
using at the time and they're cool with that like they go home and put on their snowboards and do
awesome stuff on the slopes or whatever you know and it's like great for them my particular for me
like i have to be challenged and use it for whatever reason i'd say this is actually kind
of a weakness but like i really want to be on the latest stuff you know and so uh i think that's a
really important thing to figure out about yourself and then if that's important to you i'd say
definitely change jobs like that's like you your life's too short to spend your day job doing
something that doesn't make you really excited you also have to be careful of the grass is greener
thing though it's true if every time a new framework switch comes out you quit your job
to go work on it then you'll never build anything you'll just know a little bit about every new
javascript framework that's true and since javascript was specifically mentioned this is
particularly risky in this area yeah it is yeah so maybe if you temper it and say look i'm not
going to change jobs more than once every year or two but i'm going to make sure i'm always on
the latest tech stack so that i can feel awesome about my work then maybe that's like a nice
balance yeah i i just this person will grow old and tired and then they'll just stick on angular
five for 10 years or something yeah this seems like a bigger deal with younger people although
i don't know so in my last job i'm old dave but you're older than i am you know i've said you
i've been uh yeah i'm i'm getting there you know i've been in the industry for about 15 years and
after i was at one job for seven years and the main reason i quit was so that i could try out
a new technology stack and that like that was the number one reason and it was awesome but you know
what like it was hard like after having all these ideas ingrained in my mind for like seven years
it took me probably three or four months of thinking what have i done with my new job um but
it was great like once i did it i really have enjoyed it so like i'm totally on board with
changing jobs to uh to try something new not every six months not even every year or two probably
you really want to like stick with a job for a year or two unless things are really bad in my
opinion just so you can really understand the business and the team and stuff um before you
jump ship but i'm totally on board with changing jobs frequently yeah i i agree with that i just
have this little like hesitation in my mind that maybe that's not what's going to make you happy
and and if you think it is you'll miss out on i think there's some growth to be done um and and
if you just bounce every time anything gets hard for you then you'll miss out on that it's very
true like maybe you're on extjs or something something that's a few years old and you say
the word and people kind of cringe like that's uncool um but there are still some architectural
problems to work on there's still stuff to figure out it's not like the framework hopefully it
doesn't ruin your life or rule your day-to-day work because you're working on a product not
like plugging stuff into the framework true i don't know it can get bad when you have a
particularly old technology because it's like oh this new browser came out and we can't even
target it anymore and that happens like you need to really reevaluate but at that point it's a
business decision right like your whole business might be forced to change yep that's true and
that's that's another good point that uh if if it's because of if it's because of personal reasons
then then you just kind of have to either convince people or jump ship but if it's actively harming
like your your your work then maybe you need to bring it up to to the team and maybe you have
room to say we should rewrite something else because yeah we can't build on like yui2 anymore
or something also in this question he said uh he or she said um there's no clear like migration path
And when I hear the word migration, I think like wholesale, we're going to like redo this app in this new framework.
That will never happen.
Yeah, that will never happen.
If it makes money, it will never happen.
Here's what's really cool is that in the JavaScript ecosystem, you can carve off pieces of your web app and run them with a different tech stack.
Like more so than any other programming language or tool that I've ever worked with, JavaScript makes that possible.
Because at the end of the day, you're just working with a whole bunch of freaking text files.
Like you're not totally beholden to one framework.
So, like, in my current work, we have a smattering of jQuery, React, and Angular, and React and Angular, and React in Angular in React.
You know, it's like, you can do this, right?
And you might find that whole exercise to be challenging.
And the reason I bring that up is because it's usually very hard to convince your team to move to a new technology.
But it's also often very easy to convince them to do one small feature in a new technology just to try it out.
And then especially if you are very diplomatic and you say, hey, team, I want to try out this new technology, but I don't want to commit us all to it because I know that would be foolish.
But I want to try it out.
And then after we ship this one feature, I want to have a meeting and get everyone together and we can talk about how well we liked it and if we did or didn't.
And you might be surprised at how people will come around to new technology ideas when you do that, when you pitch it correctly.
So that's a skill I think that people need to work on as well.
Yeah.
Yeah. I guess I've also been assuming that the company you work for is good and there are good people there that you like and that will kind of mentor you and help you grow.
But if you're just like stuck in some backwards company with people that don't like developers or I don't know.
Yeah, you shouldn't stick around if you're unhappy.
But if the company is great and the only thing is the technology, then maybe see if I would say maybe see if there's a way to kind of.
Yeah, I agree with Dave. See if there's a way to sneak it in.
But stay above board.
No one, you know, developers hate it when you, like, literally sneak a framework in.
Like, oh, we're React Shop now, huh, Bob?
Oh, sorry, guys.
I just thought it was the best way to implement that dropdown.
Yeah.
And you just added 400 kilobytes to our main tab for that one dropdown, huh?
Yeah, but they're so new.
Those are the newest kilobytes in our whole system.
Yeah, they're great.
Yeah.
So five?
Is that what I'm hearing?
Five out of ten?
Definitely.
This is so personal, though.
I think you have to gauge it based on what you want.
But for me personally, if I was in a company that would not adopt new technology, I would want to bounce.
It is like a career thing, too.
If you're convinced that you're in a dead-end technology and the industry is moving away from it, then there's something to be said for that.
That's true.
And I'll add one more comment for me, and then I don't have anything else, which is when I hire people, when I interview them,
I usually am not looking for proficiency in the skills or in the tools that we
use at work today.
Like I'm way more interested in the candidate's ability to learn.
Cause when I hire someone,
like I want them to be on my team for several years and I know because
JavaScript,
I know that we're not going to be on the same technologies in two or three
years that we are today.
And so I want to hire people who are like,
yeah,
I'd love to learn new technologies and I do it fast and effectively and
responsibly.
And so if you can demonstrate to me through your work experience that you've
been able to do that effectively,
like i'm way on board with that i will never hire an angular expert or a react expert or
you know an elm expert just because that's their skill i'll hire them because they're capable and
of learning new technologies quickly and being you know good members of the team that way
so like that's another reason to change jobs periodically because it does give you a nice
chance to do a total reboot and and to flex that muscle the the relearning muscle that sometimes
goes dormant when we just use the same technology for a long time yeah that's a good point answered
Question answered.
Just follow our simple recipe.
Yep.
It's that easy.
Just sit and talk for 15 minutes about it.
And then 5 out of 10.
All right.
Well, those are the two questions we're going to do today.
Should we tell people how to get in touch with us if they would like us to answer one of their questions with a clear, straightforward recipe for success?
Yes.
Follow this simple recipe.
Fix it in post.
you can probably tweet at us for now
I'm Jurgason
J-E-R-G-A-S-O-N
on Twitter
and I am DJSmith42 on Twitter
tweet us and we'll put your questions on the list
and if you're lucky
we will answer them
or if you're unlucky
we will answer them
yep
okay thank you
so much for now
bye bye
