
Ask HN: Landing a programming job by virtue of a side project only? - sullivan
I&#x27;d like to pursue developing full-time but have no formal education. I do however have a profitable (~$500 MRR) SaaS in the finance niche and a few dozen freelance reviews from over the years. I plan to continue growing my product, but I believe the upside is limited and marketing isn&#x27;t my forte, which has lead to my interest in seeking a position with stability where I can focus mostly on coding.<p>My first step will be to get a public repo up for it, but provided that&#x27;s done, my questions are:<p>1) Would you consider someone in my position a candidate for an interview based on a product&#x2F;repo only?<p>2) My experience is full stack, LAMP&#x2F;JS, but all vanilla. Are there opportunities for a developer without framework knowledge, or should I focus on this prior to a job search?<p>3) I live about an hour from Toronto, Ontario. If I had a choice, a hybrid position where I commute one or two days a week and work the rest remotely would be great. Can this type of arrangement be found outside of senior positions or am I being unrealistic?<p>Cheers
======
chad_strategic
I know you think you want a programming job, but try to avoid it. I was in a
similar position to you years ago. When you start working for other Sr. Dev
etc, they will break your spirit and add levels of code bureaucracy and egos.
This doesn't include the arguments about naming variables.

Just keep working on your own projects. Who cares if it's spaghetti code, you
are making money, those people you interview with are working for the man, you
are not.

Creative, drive and initiative (the talents you used to build your own web
site and make it profitable) are talents not found in programming. Coders and
Sr. Devs who see that you have those talents will soon extinguish those
positive traits from character.

Sent from a government office... Help I'm trapped.

~~~
chad_strategic
Keep fighting, it will be a long battle but worth it in the end.

1\. Do some human networking/meet ups. This is completely under rated and the
returns are infinite.

2\. Upwork.com, it take about 10 proposal before you get some work. It works
over time.

Here is some inspiration... [https://glenmccallum.com/2019/05/14/senior-
developers-reject...](https://glenmccallum.com/2019/05/14/senior-developers-
rejected-jobs/)

[https://selftaught.blog/self-taught-programmer-jack-
dorsey-b...](https://selftaught.blog/self-taught-programmer-jack-dorsey-
birthed-social-media-giant/) second paragraph.

------
xwolfi
The $500 MRR is an interesting selling point, for sure.

See yourself as a product you must sell to a new client, your future company.
The client is made of: \- A future manager \- Future colleagues \- HR / Upper
management

Each part of the client has its own set of requirement. Getting the interview
depends mostly on selling the resume: make professional accomplishment clear,
show that you understand what's happening around you and focus on problems and
their solution.

1) I would definitely consider you for an interview, but with a strong bias
against you: I, like many others, have a formal education and believe it
helped me. I also hired exotic profiles and got bitten. The fact you have a
product up and running is the only reason why I'd pay to see you.

2) Vanilla or not, what I would want to see in frontend code is clarity and
team-orientation. If your code can be worked on by a team, and is clear and
well done, that'd be more impressive than an angular spaghetti. I would ask
you your opinion and try to determine if you can scale to team work, big
project and deadlines. Your profile is usually understood to be able to accept
ungrateful work happily while learning, and become senior in a 5-year horizon
at best. You'll be expected to be humble unless you can demonstrate
exceptional insight about programming.

3) I would refuse to see you immediately if I heard about you wanting to slack
while we pay you to learn, and I would strongly signal during an interview
that not only this is not possible even for the CEO, but that wanting it while
you have so much work to do just to be on par with the team that will have to
support you for a few years is disrespectful.

The top rule I try to apply when recruiting, is : is that guy better than me.
If yes, hired.

------
dangerface
I have no formal education.

YES! Side projects are the best way to demonstrate you know what you know.

1) YES! A million times YES! When recruiting people I don't care about their
degree I know how academia works I know its all talk no walk, I want proof and
a public repo is the best way to do that.

2) When searching for jobs search your skills (php / javascript) not a job
title.

Your biggest selling point is that _you are a self starter_. If there is
something you don't know you will just learn it, while the academics sit on
their ass waiting for some one to show them. Its hard to understate how much
of a massive advantage this is, _especially to business minded people_.

3) Yes

Your biggest obstacle will be self doubt or over confidence, don't bull shit
if there is something you don't know just stick to your winning attitude.

------
drenvuk
1\. I would whiteboard you and vet your previous clients/projects. This also
assumes I have time. Make sure you're good on from a project pov and an
algorithms pov. I've seen bad code from people who have made decent looking
projects. When I looked deeper I just saw copy pastes from stackoverflow.

2\. This makes it harder - just learn react, new ES stuff and webpack if you
want to focus on front end, it doesn't take long, just run yourself through
some tutorials and build a small project to familiarize yourself. Some people
will ask you trivia.

3\. You're being unrealistic.

I suggest you ask for referrals.

~~~
smt88
> _I would whiteboard you_ > _you 're good on from a project pov and an
> algorithms pov_

As someone who also hires software people, I would urge you to review the
evidence on whiteboarding. It's difficult to discard your own anecdotal
evidence, but hiring has no control group -- you have no idea how many great
people you're missing as a result of whiteboarding.

The reasons against whiteboarding have been discussed here many times, but
I'll summarize them again:

\- They're unnatural. People haven't practiced writing code standing up, with
markers, with other people around, in real-time with minimal thought/planning,
or with a potentially life-changing job on the line, and they don't do that
after you hire them.

\- They're biased against people who are introverted, who haven't specifically
practiced whiteboarding, and/or who just aren't as cocky. Why are those traits
you want to filter out?

\- Most programming jobs are about learning and critical thinking, not
regurgitating algorithms.

\- They're humiliating for most people. That alone should be enough to end the
practice. When people ask me for advice, I tell them to avoid companies whose
first interaction with you is humiliating.

\- Experienced candidates can (and should) refuse to do whiteboard interviews,
which means your company is missing out.

I hope that's at least food for thought!

~~~
drenvuk
My whiteboarding consists of a mix of three things:

1\. Invert a binary tree (tree based and simplistic) 2\. Open a file, parse it
in a simple way and then write to a new file. (file systems, strings) 3\.
Design a barebones twitter/reddit, etc. (architecture)

No dynamic programming, no esoteric stuff. Just can they understand tree
structures, do they have a grasp on file systems, and do they have a modicum
of design sense.

It doesn't need to be hard. After that the rest of proving themselves happens
on the job. This isn't for humiliation, I just want to filter out the people
who I would waste time on with further vetting and training. If the candidate
cares they should be able to meet my appropriately low bar.

~~~
sethammons
1: have you _ever_ had to invert a binary tree outside your interview? And if
you have, not that many others have.

2: surprisingly, not all programming jobs require opening a file (I used to
run a question that required opening and writing a new file and got rid of
it).

3: I love whiteboards for design questions.

My suggestion for a technical interview (coding portion): take a real life
problem you solved in the last year or so. Distill it down into something you
could do in 15 minutes. Give the candidate 45 minutes to do it on a computer
(preferably their own). For other important things you need them to know
before they start (like if trees and file systems are important), just talk
about them and ask questions. You can drill down as far as needed there and
learn more than if they know the file api in the given language. I recently
hired a guy who was green, and did not know how to open and read a file or do
unit tests (really green). But given a laptop and a few minutes to read docs,
he knocked it out. He has been a fantastic hire working on high scale, high
available systems. I don't think he would have done well if the questions were
on a whiteboard. Just my $0.02.

------
CuriouslyC
Can't say for sure without spending some time with your code, which you would
need to entice me to do. Without a resume, you need a portfolio. That could be
one app, if it really catches my attention. A blog with a few short but
insightful posts about programming could help too. Catching me at a meetup and
demonstrating some intelligence and thoughtfulness would probably clinch it.

Your marketability is fairly limited with just vanilla JS/LAMP. At this point
I'd say learn basic React, Node and Python (preferably) or Ruby. Familiarity
with AWS would also be a high return investment. You don't need to know any
big back-end frameworks (e.g. Django/Rails) really well, but be able to
bootstrap a project and use the management app. Spending some time with a
microframework is a good idea (e.g. Express/Flask/Sinatra).

At your level working remotely part time is probably not going to be an
option. Offering to take a lower salary during negotiations might get you a
few days remote but I wouldn't expect it. I would definitely negotiate for
more remote time as a reward for positive performance reviews though.

------
sullivan
Thank you to all commenters. I'd be hard-pressed to find this kind of advice
in any other community, let alone for free, and I appreciate each of you
taking the time. I've had a day to reflect, and have decided to remain focused
on my product and continue to subsidize through freelancing and non-tech work.

I realize now that I didn't give enough consideration to what would be
imperative to an employer and the largest change from my experience working
solo - functioning as a team member. I'm a lone wolf, and while I don't think
that's inherently right or wrong, it's how I deliver my best work.

I think perhaps I'll revisit this idea in the future with my improved
perspective, but for now I know that what I truly want is to support myself
with a product I can call my own, even if it comes at the expense of a heftier
paycheque.

------
segmondy
I have hired people due to their side projects and they turned out to be
solid. But most people don't. It requires looking at your code, vetting &
talking about it.

My concerns are do you know how to work with a team? How about communication?
Do you know how to partake in all the other activities outside of coding?
Testing? Documentation? System Design? Do you know how to program in the
large?

Most people out there can brute force their way to a working project and even
make tens of thousands of dollars but that doesn't mean they are a great
developer.

------
duxup
I can't tell you anything about your local market but you sound "self taught"
and there are lots of people like that in the industry.

Look up some local meetups and get to know the local market.

------
bongowok
The solution to both your problems is the same: advertising your product
(either that financial widget or yourself).

If you learnt to advertise yourself effectively, getting a job as a self
taught developer should be a breeze.

Conversely, if you learnt to advertise your financial widget so that it paid
you a full-time salary, you could effectively hire yourself and continue
building more products.

------
codingdave
Honestly, having a $500 MRR side projects tells me nothing about your coding
skills, and would not inspire me to interview you for a coding job.

What it would inspire me to interview you for is an junior PO role. You found
a problem, built a solution, got a few customers, and have kept them happy.
The skills to do that are not related to the coding -- they are product
design/ownership skills.

~~~
dragonwriter
> You found a problem, built a solution, got a few customers, and have kept
> them happy. The skills to do that are not related to the coding

If it's a software solution, the idea that the skills for the “built a
solution” part of that are not related to coding seems to be generally untrue.
Yes, a solo project of the type involved more than coding skills, but product
owner skills without tech skills don't call forth software from the depths of
the abyss, though they can produce a nice idea of what a software solution
would look like if someone was available to build it.

~~~
codingdave
"not related to coding" and "not related to coding skills" are not the same
thing.

Many people can fight through learning enough code to whip out an MVP. But did
they do it effectively, or did they spend 3 months doing what most coders do
in 3 days? Did they do it well, or is it brittle code that needs major
refactoring?

So while you are right that coding has to happen, I stand by the original
statement that the mere presence of code does not inspire me to interview the
person who created it.

------
kksrini2809
@sullivan You can get full-time employment even though formal education is
required but sometimes not mandatory. Visit
[https://angel.co](https://angel.co). Try to build up your networks and show
up your product and revenue in social media this will help you to land up your
next full time job. Wish you good luck.

------
p0d
I work in IT and many of the responses I am reading here sound idealistic. I
am aware of weak, good and exceptional programmers who all get paid at the end
of the month. Have a go and see what happens.

------
rajacombinator
I would not believe you were making $500 MRR if you put it in a public repo.
So consider that carefully. Better off spending time writing your resume well.

------
taway555
i was able to do this. i had one side project/app published in the app store
and one freelance contract. those alone got my foot in the door for technical
interviews... from there, there is no free lunch, however: study nonstop to
pass technical white boarding and screens. you have to run through the
gauntlet of technical interviews to get hired.

do you have any formal education? bachelors in anything?

------
sergiotapia
It's a tough sell if you don't know any frameworks. The vast majority of
businesses use frameworks, makes it easier to hire for, right?

------
muzani
My experience is that side projects will land you an interview, but they still
test for personality and technical ability.

------
jaabe
I’ve never hired someone who was self-taught, not because self-taught people
can’t be equal or better, but because you’re trying to buy security and
stability. The most expensive mistake you can make as a manager is hiring the
wrong person, and self-educated people just aren’t worth the risk when you
have a dozen other candidates who are great. I’m Danish though and things are
a little different here because education is free. In face the government will
even pay you a small amount of monthly money while you study. So we don’t have
that many self-educated people, and those who are, are typically self-educated
for a range of reasons that put them at a disadvantage from the get go.

So my point isn’t to discourage you, but to make you aware that managers might
see your lack of formal education as a risk that you need to mitigate.

Everyone can learn to program, but learning how to program, correctly,
efficiently and safe comes with formal education and you probably need to show
that you know at least something about how to make CS based decisions. Maybe
you do, if so great. If you don’t, spend a little time researching best
practices, read up on design patterns and maybe complete the MITX intro
course(s) to CS on edx.org.

I’m not sure knowing a specific framework is really all that valuable. If your
can build something with LAMP/JS that makes money then you’ve already
demonstrated your ability to write software. On the other hand it wouldn’t
hurt you either.

~~~
randomvectors
1\. As a hiring manager you should be better at differentiating between people
and treat a degree as just one data point that you take into account, and not
as a filter that gives no false positives.

2\. You're pointing out that self-educated people aren't worth the risk and
then you go on to advise him that he should self-educate.

3\. A point that I think you're kind of making and that I agree with, is that
a degree is a signal that you've gone through a certain process of education.
If you don't have it, then you'd better signal the same thing in a different
manner and demonstrate that you're familiar with theory, best practices,
design patterns and so on; and that you can stick with something for a
continuous period of time (showing up and doing at least the minimum amount of
work for 4 years isn't a signal that all candidates have).

~~~
jaabe
You can certainly have a degree in CS and suck, but the odds of that happening
are much lower than with people who don’t have a CS degree. Why should I waste
the resources if I have enough decent candidates?

The rockstar developer is kind of a myth. If you compile 100 applicants into
the 5-8 best ones, then the truth is that you could probably hire any of them
and get good results.

That doesn’t mean self-educated people should give up. Especially because very
few countries have as easy access to education as we do.

~~~
mattmanser
Haha, the opposite of what you're arguing is true.

Anyone can get a CS degree without knowing how to program, you can make up the
credits with all the irrelevant, purely academic, formal CS stuff.

But no-one can be a self-taught programmer, actually create a whole app, and
lack the fundamental ability of being able to write a basic program.

~~~
jaabe
I think everyone can learn to write an app by following a few YouTube videos.
This is how we’ve got our project managers and lean-operators to write RPA
projects in python after all.

On the flip side, I’ve never personally met anyone who went through 5 years of
university and came out knowing nothing.

The thing with CS is that it’s not the programming itself that’s actually
valuable. It’s being able to create efficient, safe and maintainable code. If
you can’t tell me the bigO of your program, if you don’t know how to remove
the top node of a binary search tree or if you think using NPM packages to do
simple computation is a good idea, then I just can’t use you, because it’ll be
way too expensive to teach you.

If you suck at our specific tooling, but have already proven you can obtain a
university degree, then I know that I can re-school you relatively cheap by
sending you on a few courses.

I’m sorry this is rubbing non-educated programmers wrong, but an education is
actually valuable, and it will be increasingly so as the younger generations
are all getting them.

