My advice: try. Always try.
Finding a job is a matter of chance.
I know many people who just sit and think "I'm not ready yet, I have to read N more books, I have to grok data structures, I have to grok algorithms, I have to learn OO, FP etc. Soon I'll be ready for Google.". And they just sit, read books and so on.
You never find a job this way (in my opinion). Just do small steps: find any job (or internship), gain some experience. If you get bored - find next job. And so on.
After several steps you notice that you get higher and higher, you have some serious experience, your CV gets longer etc.
You lose nothing if you fail an interview. But gain a lot: you know gaps in your knowledge, you know what questions are being asked, you become more confident.
Don't be shy, don't underestimate your abilities and just give a try.
Probably, but you should pick some problems and make interesting demonstrations of your ability as a calling card. People in the commercial world are attracted by results more than by potential; the results need not be that interesting in academic terms if they are novel in product terms.
A job, yes.
Your dream job, maybe not.
You don't say where you live... or whether you have any internships under your belt.
Some hiring managers at tech companies (especially early stage ones, say sub 200 employees) look down upon new PhD's as being too academic and lacking in commercial experience.
Do you have any Python experience?