Side Projects are deadweight to employability
83 comments
> I didn't know creating a 3rd table to track Reputation/Likes between a user and a Story is a database concept called 'Joint Table'.
That's a major problem. Table joins are the most basic concept in relational databases. A so called developer who puts together a database but isn't even aware of table joins is someone who didn't even browsed through a basic SQL tutorial and is completely oblivious to concepts such as database normalization.
To put it in perspective, it's like claiming you are a proficient developer but are oblivious to the use of if statements.
If you're really interested in software development and web services I'd suggest you invest a couple of hours learning the basics of relational databases, including a brief intro to normalization. That is mandatory if you want to avoid more accusations of incompetence.
That's a major problem. Table joins are the most basic concept in relational databases. A so called developer who puts together a database but isn't even aware of table joins is someone who didn't even browsed through a basic SQL tutorial and is completely oblivious to concepts such as database normalization.
To put it in perspective, it's like claiming you are a proficient developer but are oblivious to the use of if statements.
If you're really interested in software development and web services I'd suggest you invest a couple of hours learning the basics of relational databases, including a brief intro to normalization. That is mandatory if you want to avoid more accusations of incompetence.
Uh, "joint table" was the term used, not "table join". Pretty sure "joint table" in this context is referring to something like the intermediary table in a many-many relationship, which I can see being quite intuitive to create without knowing this weird term that I've never heard of before, either.
I have always referred to it as a joining table
Potayto potahto https://stackoverflow.com/questions/3045034/whats-the-correc...
I call BS if they "take points off" for not knowing the exact term "joint table", and if so that's not the kind of company I'd want to work for.
I call BS if they "take points off" for not knowing the exact term "joint table", and if so that's not the kind of company I'd want to work for.
You call BS on OP or the interviewer? Have you interviewed for a "unicorn" and other "cool" companies?
Sadly, looking for excuses to rationalised that the interviewer doesn't like you is still a thing.
Sadly, looking for excuses to rationalised that the interviewer doesn't like you is still a thing.
I call BS on the interviewer because as this thread and that question I linked on Stack Overflow demonstrates, "joint table" is not "the" term for the concept in question, and in fact there is no accepted one term. So, "marking down" for not knowing that term doesn't seem right.
Edit: On the other hand, asking the question in a way that gets at the concept, not the term, seems very reasonable.
I don't think it's relevant, but yes, I have interviewed at such companies.
Edit: On the other hand, asking the question in a way that gets at the concept, not the term, seems very reasonable.
I don't think it's relevant, but yes, I have interviewed at such companies.
> Uh, "joint table" was the term used, not "table join".
I don't believe OP is aware of the existence of table joins, and just reproduced what he thought was mentioned.
Meanwhile, the DB operation he described is clearly a table join (create a new table by creating a relationship between two existing tables).
That is also quite clearly a good reason for a prospective employer to lose interest in OP as a potential recruiter, and why his projects on Github fail to impress anyone. Portfolio projects only work in favor of a job applicant if they are any good, but if they are all a bunch of crap that is poorly put together and showcases incompetence, such as setting up a database system that tries to reinvent the wheel to fill in the gap of not knowing the very basics, then obviously that is disheartening to any potential recruiter.
I don't believe OP is aware of the existence of table joins, and just reproduced what he thought was mentioned.
Meanwhile, the DB operation he described is clearly a table join (create a new table by creating a relationship between two existing tables).
That is also quite clearly a good reason for a prospective employer to lose interest in OP as a potential recruiter, and why his projects on Github fail to impress anyone. Portfolio projects only work in favor of a job applicant if they are any good, but if they are all a bunch of crap that is poorly put together and showcases incompetence, such as setting up a database system that tries to reinvent the wheel to fill in the gap of not knowing the very basics, then obviously that is disheartening to any potential recruiter.
What the hell else do you think they were doing with their "joint table" if not performing joins on it?
"Joint Table", not "Table Join", they are very different things. You can use joint tables a lot without even knowing that they are called joint tables.
To be fair, I think the OP knows what are joins, but doesnt know what are “Joint Tables”. I literally never heard the term “Joint Tables” myself until now.
> I literally never heard the term “Joint Tables” myself until now.
I don't think this is an SQL concept. The only people I've heard use this word (phrase?) are people who work with Java ORMs.
I don't think this is an SQL concept. The only people I've heard use this word (phrase?) are people who work with Java ORMs.
Also never heard of that phrase. I also haven't called them "join tables", but that at least seems a more sensible phrase and is a close homonym to "joint tables".
Ditto. And a Google search shows a full page of "table joins" for "joint table." Still not sure what a joint table is.
It's a table that tracks the people who smoke.
Yeah, as I said, did a hundred things. I designed database schema without picking up a single book on database. First implementation was 100 DB accesses per Story fetch, and it blew the cap on my BaaS in days of development. LOL. Quickly figured out what's wrong via API documentation, redesigned the schema (I didn't even know what the word schema is, I thought it's just Excel table rows & columns). Shrunk it down to 0 accesses for query actions (query also fetch basic metadata for 50 Stories at the same time). Probably got all these done in 2/3 weeks, a quarter of the time someone goes thru a DB design course?
It's really hard to even recall dozens of these experience and shrink them into stories and putting words to these. In the startup world, it's called 'Get Shit Done'. In the monolithic FAANG & FAANG wannabe world, I dunno what it's called...
It's really hard to even recall dozens of these experience and shrink them into stories and putting words to these. In the startup world, it's called 'Get Shit Done'. In the monolithic FAANG & FAANG wannabe world, I dunno what it's called...
See Associative entity [1] for list of common names for "join table"
[1] https://en.m.wikipedia.org/wiki/Associative_entity
[1] https://en.m.wikipedia.org/wiki/Associative_entity
Since most of my sibling comments are sharing anecdotes I therefore admit that I have heard the term.
Maybe if everyone replies if they have heard it or not we can reach a conclusion if it is a known term in Hacker News community.
Or we can decide that such anecdotes are of little value to the discussion and stop posting them since it is unrealistic to reach the above mentioned conclusion just by reading them and it can mislead some readers.
Maybe if everyone replies if they have heard it or not we can reach a conclusion if it is a known term in Hacker News community.
Or we can decide that such anecdotes are of little value to the discussion and stop posting them since it is unrealistic to reach the above mentioned conclusion just by reading them and it can mislead some readers.
Never heard of the term even though I am using them all the time.
Any resources for learning rdb concepts? I'm not particularly skilled in the theory yet I'm sure I've (poorly?) reinvented many common patterns...
Side projects by themselves can't get you in. They boost your chances significantly but there are other things that can keep you out. (I'm not endorsing this/any practice, just trying to state reality).
- Knowing terminology of the field is important for quick communication in the team. E.g. We're going to do cache invalidation with LRU is harder/imprecise/longer to communicate without those words even if you have implemented it in practice.
- Sounds like you spent 2 years full time building projects. You can't call them "side projects" that you did for fun/learning, they sound more like real attempt at making an indie business (good for you). It's a significant time investment. You need to be able to talk about your project intelligently. Know everything you have used to get there: build tools, web frameworks, database schema, OO design & how it all fits together. They won't ask "point" questions about your demo, they don't care. More important is what all you have learned from the projects and being able to articulate it is important.
- Finally, why swim against the river flow? If you are smart enough to build social media platforms by yourself (with no CS background), you can very easily pickup a few books and learn the fundamentals of Data structure, algorithms etc. It's not very hard to excel at white boarding (if that's what they want to see).
- Knowing terminology of the field is important for quick communication in the team. E.g. We're going to do cache invalidation with LRU is harder/imprecise/longer to communicate without those words even if you have implemented it in practice.
- Sounds like you spent 2 years full time building projects. You can't call them "side projects" that you did for fun/learning, they sound more like real attempt at making an indie business (good for you). It's a significant time investment. You need to be able to talk about your project intelligently. Know everything you have used to get there: build tools, web frameworks, database schema, OO design & how it all fits together. They won't ask "point" questions about your demo, they don't care. More important is what all you have learned from the projects and being able to articulate it is important.
- Finally, why swim against the river flow? If you are smart enough to build social media platforms by yourself (with no CS background), you can very easily pickup a few books and learn the fundamentals of Data structure, algorithms etc. It's not very hard to excel at white boarding (if that's what they want to see).
For FAANGS, I bet half my interviews didn't even go to my landing sites. And no way would any of them have downloaded the app to see the complexity and performance of the application. I'm purely evaluated on algorithms and data structures. If so why bother with the projects? It's much cheaper to just spend the time to study algorithms and data structures. I'd argue I learn 1/100th of what I did. But if companies only look for what's missing out of their list of attributes (and a lot not even relevant to the job at hand), and discount the 99 other things that I have demonstrated to excel at, it's not only demoralizing, it's plain stupid.
Think about it from their perspective for a moment. Why should they invest months or years training you on rudimentary subjects when they can easily screen for candidates who already know this stuff? There’s not much you could work on at a FAANG without knowing algorithms and data structures.
Correct, or even incorrect terminology is important for quick communication but I don't consider it essential. If your partner tells you a word that you don't understand, just ask and you are set.
In fact, chances are that the team you are joining have their own jargon, and asking may not be a bad idea in any case. Sometimes, common technical words can get an entirely different meaning depending on the project you are working on. For example, I had a project that called recordings "FIFO", or another that called bug reports "FFT".
In fact, chances are that the team you are joining have their own jargon, and asking may not be a bad idea in any case. Sometimes, common technical words can get an entirely different meaning depending on the project you are working on. For example, I had a project that called recordings "FIFO", or another that called bug reports "FFT".
My github profile has gotten me more jobs than I can count. The biggest things to solve for getting hired are:
1. Finding good employers/clients (meaning are they actually good people, good culture, respectful, professional, etc).
2. Marketing yourself.
Yes, you're still going to have to do those coding challenges and such, because companies want to have a standardized way to approach hiring in order to evaluate all applicants the same way. And even though that's a fool's errand, it's still more palatable than a brazenly subjective "gut feeling" hiring process.
Your OSS projects are there as conversation pieces, for talking about how you discover, define, and approach projects. They want to know one thing: Will they gain a competitive advantage by hiring you? Demonstrate the skills they value the most, and the answer to that question will more often than not come out "yes". Or go one better: Seek out companies that value the same skills you do. Research and interview THEM. Hiring goes both ways.
1. Finding good employers/clients (meaning are they actually good people, good culture, respectful, professional, etc).
2. Marketing yourself.
Yes, you're still going to have to do those coding challenges and such, because companies want to have a standardized way to approach hiring in order to evaluate all applicants the same way. And even though that's a fool's errand, it's still more palatable than a brazenly subjective "gut feeling" hiring process.
Your OSS projects are there as conversation pieces, for talking about how you discover, define, and approach projects. They want to know one thing: Will they gain a competitive advantage by hiring you? Demonstrate the skills they value the most, and the answer to that question will more often than not come out "yes". Or go one better: Seek out companies that value the same skills you do. Research and interview THEM. Hiring goes both ways.
more jobs than I can count
That won't hold up in tax court.
...
OP: You are completely correct. Years ago I put together a website portfolio (pre-Github or anything similar) and was astonished to learn that approximately 0.00 percent of employers bothered to look at it. At the job I eventually landed I asked during the interview if they had looked at it. Nope. Absolutely baffling to me, but I suppose the problem is that side-projects are invariably outside the hiring process.
Everyone went to school, everyone has a work history, everyone has a behavioral profile, everyone can attempt algo questions, but only 1 percent of applicants have side projects. So how can that be judged consistently across candidates?
That won't hold up in tax court.
...
OP: You are completely correct. Years ago I put together a website portfolio (pre-Github or anything similar) and was astonished to learn that approximately 0.00 percent of employers bothered to look at it. At the job I eventually landed I asked during the interview if they had looked at it. Nope. Absolutely baffling to me, but I suppose the problem is that side-projects are invariably outside the hiring process.
Everyone went to school, everyone has a work history, everyone has a behavioral profile, everyone can attempt algo questions, but only 1 percent of applicants have side projects. So how can that be judged consistently across candidates?
My thought is that the projects will be what really sets you apart. Everybody can say they learn quick, they are self starters. And these are often touted as the 'most important attributes'.
But it just boiled down to algorithm challenges which is mostly down to how much time one have 'wasted' to excel at them.....
But it just boiled down to algorithm challenges which is mostly down to how much time one have 'wasted' to excel at them.....
If you're having trouble with the interview, you should invest some of your time in preparing for interviews. And yes, that might mean practicing algorithmic puzzles and brushing up on vocabulary that might have not mattered when you were building your side projects.
An interview isn't about what you know or can do, it's about getting the interviewer excited about you. Knowing how to do stuff helps that, but only if you can communicate it.
Side projects projects round out a resume and can get you in the door. They are not dead-weight.
An interview isn't about what you know or can do, it's about getting the interviewer excited about you. Knowing how to do stuff helps that, but only if you can communicate it.
Side projects projects round out a resume and can get you in the door. They are not dead-weight.
I think you might be taking the wrong perspective on this. Everything is a learning experience, even an interview where you didn't get the job. You didn't know what a join table was, now you do. Doing a bit of research on typical programming questions would probably go along way to close the gap. You can go back to your existing projects and rewrite them
with a join table, and with a little research you could probably get the app in a better state that you will look more attractive to a prospective employer.
You obviously learned a lot while building these side projects. I've certainly done things on my own without knowing the proper way to do it, only to learn there right way later on. You clearly know how to write code and build stuff. Being an EE major you understand logic. I don't think it would be too difficult to make the transition to developer.
How many interviews did you go on? I'm employed and when I was looking for a new job I had some stumbles. This is part of life. Even with the gap between supply and demand for programmers , some employers are going to be picky in what they are looking for.
You obviously learned a lot while building these side projects. I've certainly done things on my own without knowing the proper way to do it, only to learn there right way later on. You clearly know how to write code and build stuff. Being an EE major you understand logic. I don't think it would be too difficult to make the transition to developer.
How many interviews did you go on? I'm employed and when I was looking for a new job I had some stumbles. This is part of life. Even with the gap between supply and demand for programmers , some employers are going to be picky in what they are looking for.
I basically implemented join tables to keep track of reputation, along with a periodic reputation calculation algorithm that accounts for freshness and other feed prioritization metrics. Without knowing the words 'Joint Table' or 'Freshness'. This is one of the hundreds fo things I did. I can harp about marketing, conversion funnel. or UI/UX design. or Customer Validation and Lean Startup...
But all I ended up getting is 'Cool App'. But 'Your technical competency because you can't finish implement a working Trie in the 30 minutes that's left after you spent 15 minute talking about your cool project.'... So basically 99% weighting is on the algorithmic puzzles.
But all I ended up getting is 'Cool App'. But 'Your technical competency because you can't finish implement a working Trie in the 30 minutes that's left after you spent 15 minute talking about your cool project.'... So basically 99% weighting is on the algorithmic puzzles.
How many interviews did you go on? All of your interviews went that way?
I like to think I'm pretty clever, and I've been tripped up in interviews before. The content of an interview is based on usually one or two people. Sometimes they think they're smarter than everyone else, and ask obscure or difficult questions within a limited time frame. They are looking for people at least as knowledgable and clever as themselves, but have a tendency to overlook other skill sets. You built something yourself, you know how to make decisions. Those are valuable skills to have.
I just don't want to see you get discouraged because of 1 or 2 interviews. I've been tripped up myself, I have a CS degree. There are some places where I've fallen short. Make notes from each interview, what you need to improve upon. However each interview is unique, you can't expect to learn lessons from one interview and get identical questions in the next.
Don't get discouraged. I have faith in you. Seriously, there are a lot of pretentious people making decisions on what gets asked in an interview. Not succeeding is not necessarily a reflection on you and your skill set.
I like to think I'm pretty clever, and I've been tripped up in interviews before. The content of an interview is based on usually one or two people. Sometimes they think they're smarter than everyone else, and ask obscure or difficult questions within a limited time frame. They are looking for people at least as knowledgable and clever as themselves, but have a tendency to overlook other skill sets. You built something yourself, you know how to make decisions. Those are valuable skills to have.
I just don't want to see you get discouraged because of 1 or 2 interviews. I've been tripped up myself, I have a CS degree. There are some places where I've fallen short. Make notes from each interview, what you need to improve upon. However each interview is unique, you can't expect to learn lessons from one interview and get identical questions in the next.
Don't get discouraged. I have faith in you. Seriously, there are a lot of pretentious people making decisions on what gets asked in an interview. Not succeeding is not necessarily a reflection on you and your skill set.
Well, I got a good job by self teaching and having GitHub side projects, and the worst CV in history. So our anecdotes can cancel out here and we can throw this post and my comment in the bin.
Your looking in the wrong places. I would probably hire you over a number of "more qualified" idiots who can't get crap done....I always tell my interviewer: look there are two types of companies; those who care about years of experience, degrees, certificates, etc and those who care if you can get stuff done. I want to work for companies like the latter.
Yeah. Gonna do my last 'standard interview' with yet another FAANG, and the last FAANG I'm gonna apply to, coming up Tuesday. Startups excites me a lot more anyways... Just that they have a lot less openings and budget & logistical support for relocations.
I'll offer my experience here. I'm aware this likely isn't representative of the industry, but hopefully another data point can be useful.
I got my current job because of my side projects and codepen portfolio. The team that I came to work with really liked my previous work and we're impressed with my ability. It was great for them to see real projects I'd created and see just how capable I am. While we still had a whiteboard (and other) interview steps, it was the visibility into my work that tipped the scales.
The difference, I think, is that I had a collection of small, targeted side projects. Each project didn't take more than a few weeks so that I could complete the idea and move on to another one that would be fun to work on. I think if I spent a lot longer on each project my portfolio would have been much smaller and thus less impactful (unless of they became widely used apps which none of mine did).
I got my current job because of my side projects and codepen portfolio. The team that I came to work with really liked my previous work and we're impressed with my ability. It was great for them to see real projects I'd created and see just how capable I am. While we still had a whiteboard (and other) interview steps, it was the visibility into my work that tipped the scales.
The difference, I think, is that I had a collection of small, targeted side projects. Each project didn't take more than a few weeks so that I could complete the idea and move on to another one that would be fun to work on. I think if I spent a lot longer on each project my portfolio would have been much smaller and thus less impactful (unless of they became widely used apps which none of mine did).
Lots of companies don't do puzzles, or you can bypass the puzzle, or you can sell your ability to work independently, etc.. See https://github.com/poteto/hiring-without-whiteboards and https://codewithoutrules.com/2018/07/29/getting-a-job-withou...
I think it is not all lost. The projects you have worked on shows your ability to design and build something from sctrach. It shows your ability to deliver and see something from start to finish also all the technical experience you've gained. I think it is only a matter of time until someone sees that you gain employment. If they don't it's their loss.
I guess the only thing that can work against you is your ability to work as a team and interact to achieve best results through communication. Something that a company should be willing invest.
I guess the only thing that can work against you is your ability to work as a team and interact to achieve best results through communication. Something that a company should be willing invest.
I was leading a team of 4 (the rest are part-time). Definitely humbled in how crappy of a manager I am. But learned a heck lot tho. Stuff that doesn't translate through an algorithm puzzle yet again...
The projects got you the interviews. Now learn to sell yourself in an interview and it will be fine.
I'm in Northern Europe and experience the opposite thing: I spent seven years of studying (I have two undergraduate and two graduate STEM degrees), but it doesn't really help me in the hunt for a job. I have never had an algorithmic question in a job interview.
I saw you commenting on one of my posts yesterday, and I checked out your projects. They look very good, and I can't really put my finger on the problem. Maybe you should put more emphasis on your projects on your resume? If I remember correctly you're in Canada and looking for a job in the US. It might just be the added overhead of finding a job in another country.
It's also a possibility to market your products more. If you have friends who would be good at this, they can help you. You have quite a fancy product, and I bet many people would love to start a journey to build something with you. Find someone with more experience in looking for investors and you might have something on your hands (and you wouldn't even need to do an interview).
I think the tech job market is a hard one because there are so many niches. That said, have you tried an interview training? It is hard for people to point out the problem via the internet. No offense, but maybe there is a simple thing you're doing wrong. I know I have a tendency to undersell myself, and I don't always share my excitement with others, which might come across as a lack of enthusiasm.
Last but not least: It can't hurt to study some academic subjects.
Anyway, I wish you the best of luck. Your projects look cool, and I don't understand why you're having a hard time finding a job.
I saw you commenting on one of my posts yesterday, and I checked out your projects. They look very good, and I can't really put my finger on the problem. Maybe you should put more emphasis on your projects on your resume? If I remember correctly you're in Canada and looking for a job in the US. It might just be the added overhead of finding a job in another country.
It's also a possibility to market your products more. If you have friends who would be good at this, they can help you. You have quite a fancy product, and I bet many people would love to start a journey to build something with you. Find someone with more experience in looking for investors and you might have something on your hands (and you wouldn't even need to do an interview).
I think the tech job market is a hard one because there are so many niches. That said, have you tried an interview training? It is hard for people to point out the problem via the internet. No offense, but maybe there is a simple thing you're doing wrong. I know I have a tendency to undersell myself, and I don't always share my excitement with others, which might come across as a lack of enthusiasm.
Last but not least: It can't hurt to study some academic subjects.
Anyway, I wish you the best of luck. Your projects look cool, and I don't understand why you're having a hard time finding a job.
Thanks for the kind words. I am proud of my projects, but it takes a lot more than a good looking product to create a financially sustainable startup. I am pretty confident in my ability to build products. But the skill that's really needed is to identify the opportunity vs cost of an idea, to sell a vision, to motivate others to product good quality contribution to your vision, and a crazy amount of luck... That's why I'm putting startup projects in the back burner for now.
In terms of the job hunt process, I don't get it either. FAANGs do have a huge supply/demand imbalance when it comes to tech positions. I guess I just need to be more aggressive in concentrate on more smaller companies.
In terms of the job hunt process, I don't get it either. FAANGs do have a huge supply/demand imbalance when it comes to tech positions. I guess I just need to be more aggressive in concentrate on more smaller companies.
> I am proud of my projects, but it takes a lot more than a good looking product to create a financially sustainable startup.
I know, that's why I mentioned teaming up with one or more people!
> I guess I just need to be more aggressive in concentrate on more smaller companies.
I think that would be a good idea. I think building a complete product will be more valued in smaller companies (especially startups, where you can actually work with a 'greenfield' project).
I know, that's why I mentioned teaming up with one or more people!
> I guess I just need to be more aggressive in concentrate on more smaller companies.
I think that would be a good idea. I think building a complete product will be more valued in smaller companies (especially startups, where you can actually work with a 'greenfield' project).
I think what you’ve said is true. People interviewing typically opt for something they can apply to everyone. Therefore your side projects may be unfairly discounted.
Think you need to approach interviewing as a sport and consider how to get good at it separately . In the sport of interviewing your side projects are a fantastic asset but you need to know how to deploy your assets tactically. Ie can’t just point at github and wait for the contract in the mail :)
Think you need to approach interviewing as a sport and consider how to get good at it separately . In the sport of interviewing your side projects are a fantastic asset but you need to know how to deploy your assets tactically. Ie can’t just point at github and wait for the contract in the mail :)
I'm doing live demos either in-person or on video calls. The Unicorns/FAANGs doesn't give a damn. Heck, some don't even give you the space/time to do such demos. 10 minutes behavioural grilling, and then 45 minutes algorithm puzzles. 5 minutes left for you... Shouldn't be called an interview. Should be called it what it is, a straight out standardized exam.
Well, looks to me like you definitely get the game. Not wanting to play is an entirely separate problem :)
In my opinion, Software development is a lot more than just being able to write code or make an app. It's about being able to write code that is readable and maintainable. It's about thinking a few steps ahead before you even lay down the code, and being able to work in a team that is going to help you accomplish your goals.
That company that turned you down probably did so because you showed them that your only capable of working on your own stuff that might have a lot of 'non-standard' idiosyncrasies in its architecture. I'd try to take a look at info on common patterns (a la Gang of Four), Architectures (MVP, MVC, MVVM, Flux, etc), and some of the most common (and yes, somewhat trite) interview puzzles, if only so that you can speak to your interviewers in a common language. Nobody wants to hire someone who they can't communicate with using a standard professional language. Patterns, architectures, and puzzles are just a part of that language.
That company that turned you down probably did so because you showed them that your only capable of working on your own stuff that might have a lot of 'non-standard' idiosyncrasies in its architecture. I'd try to take a look at info on common patterns (a la Gang of Four), Architectures (MVP, MVC, MVVM, Flux, etc), and some of the most common (and yes, somewhat trite) interview puzzles, if only so that you can speak to your interviewers in a common language. Nobody wants to hire someone who they can't communicate with using a standard professional language. Patterns, architectures, and puzzles are just a part of that language.
It massively depends on the company and the role they are recruiting for. There is a world of difference between a small company who not only wants but needs people like yourself who are proven, motivation and have a wide expertise and larger organisations who are probably hiring for team members who need to hit the ground running and who basically tow the line instead of thinking outside the box.
That said, I had an employee who was very experienced on paper, who done lots like yourself but at the end of the day was so outside the norm in terms of technical language and mainstream topics that it was hard to manage him.
Chin up and keep going, as someone else said, maybe you'd be better creating another product and making some money from it?
That said, I had an employee who was very experienced on paper, who done lots like yourself but at the end of the day was so outside the norm in terms of technical language and mainstream topics that it was hard to manage him.
Chin up and keep going, as someone else said, maybe you'd be better creating another product and making some money from it?
It's really hard to make money from these projects. Hence going back for employment. Either they succeed as a startup, or they are worthless. Building on contract is a tough business also. Software is great if it works and goes viral because it costs so little to scale Software. But otherwise lines and lines of code are pretty much worthless aside from learning experiences.
I did have 9 years working in a medium sized NASDAQ trade company doing firmware (C). It's not OO, but definitely team based development there. I think my problem is still to have interviews be focused on these projects. I don't mind if they grill me on the details of them to demonstrate what kind of person I am. But more often than not it's about standard behavioural and algorithmic puzzles.
I did have 9 years working in a medium sized NASDAQ trade company doing firmware (C). It's not OO, but definitely team based development there. I think my problem is still to have interviews be focused on these projects. I don't mind if they grill me on the details of them to demonstrate what kind of person I am. But more often than not it's about standard behavioural and algorithmic puzzles.
Agreed! I was there recently and although I have been a CTO and done pretty damn well with several areas of the business, I wasn't quite good enough at a technical test that required the use of Regexs without being allowed to use an online reference!
"My advise is, if your side project didn't become entrepreneur success, they are useless dead-weights. You might as well spend your time reading CTCI and doing Leetcode."
I would never follow advice coming from a rant. My advice is that you don't follow your own advice coming from a rant either. :)
There are companies that will value your experience and there is the possibility that the projects you chose do not showcase your software development skills properly.
My impression is that you got lost between creating a portfolio project and building a startup, ending up with the worst of two words. You can name both as "side-projects", but they are very different things with very different goals.
While learning to code a couple of years ago I built a lot of small projects with the sole purpose of showing that I could build and put in production very small, humble projects as a junior developer. My portfolio is here, although most projects are not online anymore (just stopped maintaining and paying domain fees): http://rodrigo-pontes.glitch.me/
They were great to learn and the portfolio was essential to be hired on my first job as a web developer.
Now I have another side-project that is totally different from those early ones. It is a bootstrapping business where the goal is not to learn and show to potential employers, the goal is to create a product that adds real value to the customer and earn money with it: www.oneonemeeting.com
I imagine a company looking to hire me as a frontend web developer won't necessarily care about all the work that went into the design and copy of the landing page, the product development, the sales part, the conversation with potential customers.
So my advice is: when starting a side-project, think hard about what are you wanting to achieve with it, what is its goal and plan it accordingly. If you build it for making money, don't expect it will help you with being hired; and vice-versa.
I would never follow advice coming from a rant. My advice is that you don't follow your own advice coming from a rant either. :)
There are companies that will value your experience and there is the possibility that the projects you chose do not showcase your software development skills properly.
My impression is that you got lost between creating a portfolio project and building a startup, ending up with the worst of two words. You can name both as "side-projects", but they are very different things with very different goals.
While learning to code a couple of years ago I built a lot of small projects with the sole purpose of showing that I could build and put in production very small, humble projects as a junior developer. My portfolio is here, although most projects are not online anymore (just stopped maintaining and paying domain fees): http://rodrigo-pontes.glitch.me/
They were great to learn and the portfolio was essential to be hired on my first job as a web developer.
Now I have another side-project that is totally different from those early ones. It is a bootstrapping business where the goal is not to learn and show to potential employers, the goal is to create a product that adds real value to the customer and earn money with it: www.oneonemeeting.com
I imagine a company looking to hire me as a frontend web developer won't necessarily care about all the work that went into the design and copy of the landing page, the product development, the sales part, the conversation with potential customers.
So my advice is: when starting a side-project, think hard about what are you wanting to achieve with it, what is its goal and plan it accordingly. If you build it for making money, don't expect it will help you with being hired; and vice-versa.
Yeah, they were more full blown startups in mind. If full blown projects doesn't help, side project of lesser quality (cuz less effort for the same person), prob won't help either?
And I am following my advice now totally. Just doing CTCI and Leetcode... Not gonna count on any other projects as an employment crutch. They either work as a business or doesn't. Employment is a completely independent thing... This is just in counter to a lot of others that claims they can always build a startup and if fails, go back to employment. At least with current employment practices, it just doesn't work like that. No matter how much applicable skills one got, it seems it boils down to 90% algorithm puzzles and that's it...
And I am following my advice now totally. Just doing CTCI and Leetcode... Not gonna count on any other projects as an employment crutch. They either work as a business or doesn't. Employment is a completely independent thing... This is just in counter to a lot of others that claims they can always build a startup and if fails, go back to employment. At least with current employment practices, it just doesn't work like that. No matter how much applicable skills one got, it seems it boils down to 90% algorithm puzzles and that's it...
well, you are clearly applying to jobs that are so different from the ones I applied, in such a different reality, that we are barely discussing the same things I guess.
One of the strengths of the type of interview questions you're scoffing at vs. Side projects is that the interviewer can be sure YOU actually did the work. A lot of side projects may show passion, but the interviewer isn't going to sit and figure out how much was a cry ally your work vs. Library and tutorial copypasta or consultants you may have paid. There's too much else to get done at a busy company.
White-boarding challenges are--just as you said--a series of puzzles and nothing more. I also do lots of open source / make (significant) side projects, but I think it's important to be able to do these challenge problems and to be able to do them fast and to explain yourself well. I just can't respect another dev who can't reason through toy problems fast. The difference between a dev who can't toy program and one who can is the difference between a mechanic and an engineer in my opinion.
Anyway, something that has helped me get far in industry is writing detailed blog posts / post-mortems for my projects. They really help convey the fact that you know what you're doing and that you're passionate, and it's there that you can show that you have mastery of all these domain specific conecepts like `Joint Tables` and `Freshness` algorithms. You post those articles on LinkedIn and I guarantee recruiters will be all over you. Recruiters from real companies that you actually want to work for. At least that was the case for me.
Anyway, something that has helped me get far in industry is writing detailed blog posts / post-mortems for my projects. They really help convey the fact that you know what you're doing and that you're passionate, and it's there that you can show that you have mastery of all these domain specific conecepts like `Joint Tables` and `Freshness` algorithms. You post those articles on LinkedIn and I guarantee recruiters will be all over you. Recruiters from real companies that you actually want to work for. At least that was the case for me.
[deleted]
Side projects are deadweight to employability, if you aren't following best practices when you're doing them.
I wasn't great a sports, but one lesson that stuck with me was practice how you plan to play. You only get better if you actively practice writing good code. As far as I know, there is no such thing as a "joint" table. However, join tables are pretty common, and fairly important in database development. Join tables are really useful for constructing relations. Even a company with 3,000 employees needs to be mindful of the efficiency of their code.
Another thing that you mention that is concerning is that you've worked on hundereds of things this year. There's not enough time in the day to work on hundereds of things in a year with any sort of depth beyond copying and pasting from Stack Overflow or blog tutorials.
Employeers are looking for skills demonstrated intentionally, and some specialization in something that they need. You spend more time cleaning up after generalist "rock stars" than someone who has a defined focus.
I wasn't great a sports, but one lesson that stuck with me was practice how you plan to play. You only get better if you actively practice writing good code. As far as I know, there is no such thing as a "joint" table. However, join tables are pretty common, and fairly important in database development. Join tables are really useful for constructing relations. Even a company with 3,000 employees needs to be mindful of the efficiency of their code.
Another thing that you mention that is concerning is that you've worked on hundereds of things this year. There's not enough time in the day to work on hundereds of things in a year with any sort of depth beyond copying and pasting from Stack Overflow or blog tutorials.
Employeers are looking for skills demonstrated intentionally, and some specialization in something that they need. You spend more time cleaning up after generalist "rock stars" than someone who has a defined focus.
Or you work 100 hours weeks. 5 features every release. While juggling marketing campaigns, UI/UX design, project management tools, etc etc. It's a lot of stuff over the year...
Deep or not I don't know. Deep enough to have a performant app that creates native content to our own backend which involves video streaming and prefetching.
Deep or not I don't know. Deep enough to have a performant app that creates native content to our own backend which involves video streaming and prefetching.
I am a generalist who spends a lot of time cleaning up after specialist simpletons. I really do, not just just a come-back.
Whether one has the patience to look ahead and code with more thought and care than a ferret high on red bull, has nothing to do with whether they are a generalist or a specialist.
Whether one has the patience to look ahead and code with more thought and care than a ferret high on red bull, has nothing to do with whether they are a generalist or a specialist.
As others may have said, it really depends on the company.
I got hired based on my github and what my favorite movie was. No whiteboard or algorithmic questions at all. Reams of blog posts have been written on how the type of interview you experienced is a broken/flawed process. I applied to 5 companies a day for a month straight (~150) before getting 5 offers in one week and not a thing before that. But I also studied to pass the interview process I knew I would encounter. At some companies the process consisted of just phone screens with technical heirarchy, at others it was a take home coding challenge to build a simple app (which you would’ve aced), at another it was a pair programming session followed by a full day onsite working with the team. Sounds like your skills and interest might be wasted maintaining a settings menu. Guaranteed there are loads of companies who would be a better fit. You just have to find it, and the only way I know how to do that is volume. Keep going!
Yeah, I got next step for all the take-homes. Usually impressed cuz I'd whip up not only a working app but great UI/UX designs in a day turn-around. But there aren't a lot of those. And these processes sometimes can go awry for weird reasons. Toronto company that doesn't respond after I said I'm in Vancouver. A New York company that don't want to fly me over and schedules a new round of video interview every 2 weeks (and still on-going)....
That's exactly how I got into the field: spent 2.5 years at home building stuff, and then published my CV on a head hunter site. That was in the morning and in the afternoon I started getting first calls from recruiters. But that's in Russia, and I also set my desirable salary quite low. But still, I ended up with my current company stealing me from another one whose offer I had accepted but hadn't started working yet, and my current company offered better conditions and it took just a week from the first contact to me accepting their offer.
Nice. I have a process that's 6 weeks in already. And they say they still need another 2 weeks to make a decision....
Yikes... Where's that? Is it normal for that area? Maybe the field is something above average?
We're hiring strong devs interested in crypto, and strongly prefer working code over other hiring indicators. Details in my comment history- reach out if you think you'd be a fit.
Side projects are good to gain experience, and to show that you are competent in a language that you claim to be competent in. However, past a certain point, it doesn't reflect much.
It's sort of like being a professional soccer player. At some point, training matches give very low returns compared to just kicking the ball at a goalpost 2 hours a day and dribbling around cones.
A lot of novice programmers have not learnt to build. A lot of intermediate programmers get stuck on the puzzles, aka algorithms and design patterns.
It's sort of like being a professional soccer player. At some point, training matches give very low returns compared to just kicking the ball at a goalpost 2 hours a day and dribbling around cones.
A lot of novice programmers have not learnt to build. A lot of intermediate programmers get stuck on the puzzles, aka algorithms and design patterns.
"I didn't know creating a 3rd table to track Reputation/Likes between a user and a Story is a database concept called 'Joint Table'."
What alternative solution did you propose for recording this data? What constraints and objectives did you consider when coming up with this solution? Is your solution better or worse, given the constraints and objectives you had in mind? Are there other constraints and objectives that would mean your solution is worse than one mentioned?
What alternative solution did you propose for recording this data? What constraints and objectives did you consider when coming up with this solution? Is your solution better or worse, given the constraints and objectives you had in mind? Are there other constraints and objectives that would mean your solution is worse than one mentioned?
I think the problem is not knowing these terminologies makes these stories hard to describe. And the interview process won't even go down the questions you have mentioned. I'd have a lot to talk about if what you asked were the question instead. If they play with the apps and even just ask me point questions about them, I think I already won half the battle.
I'm more getting: "Cool app demo. Now lets not waste time and go into algorithm puzzles."
I'm more getting: "Cool app demo. Now lets not waste time and go into algorithm puzzles."
Consider the possibility that the same personality traits leading you to write this post and irrationally conclude your side projects harmed your chances of being hired come through in the interview process.
For all you know the side projects were the only reason they interviewed you at all, or caused significant debate among the interviewers who thought you were obviously qualified because of the projects but didn't like your attitude or communication skills.
Correlation != causation.
For all you know the side projects were the only reason they interviewed you at all, or caused significant debate among the interviewers who thought you were obviously qualified because of the projects but didn't like your attitude or communication skills.
Correlation != causation.
Just saying they don't help as much as months of CTCI & Leetcode in an interview (I'd say they are exams, as they didn't interview me regarding these projects). They are definitely better than nothing of course.
I suspect this only applies to the SC Valley scene.
I'm pretty sure your side-projects will really help your chances almost everywhere outside of SV. We dont do whiteboad interviews where I work. We do short projects done as homework to access candidate abilities.
I've even seen some companies selling the fact that they don't do ridiculous whiteboard interviews as a pro to attract devs.
But, what do I know. I'll most likely never work at any of the 'cool', unicorn shops.
I'm pretty sure your side-projects will really help your chances almost everywhere outside of SV. We dont do whiteboad interviews where I work. We do short projects done as homework to access candidate abilities.
I've even seen some companies selling the fact that they don't do ridiculous whiteboard interviews as a pro to attract devs.
But, what do I know. I'll most likely never work at any of the 'cool', unicorn shops.
I want to work for unicorns before they become unicorns. Those are hard to find tho... They also have very limited openings.
A side project while employed is a quite different thing from a full time attempt at entrepreneurship. It sounds like you're talking about your experience with the latter, at which point some interviewers don't know how to relate to your situation, are afraid that as soon as funds are flush again that you'll bolt, etc.
It's such hard work to develop with developers who don't appreciate why normalising A relational database is important
Worse is trying to improve a project where the diaster has already happened
Worse is trying to improve a project where the diaster has already happened
Craziest part is I'm applying for just front-end positions. And these companies claim that 'we want well rounded full-stacker for every position'. Not saying knowing some backend stuff wont' be helpful, but wouldn't UI/UX and design be more relevant in a front-end position?
Some interviewers care, you just gotta find them. At the job I'm currently at, the interviewer looked at my GitHub and that was it. No coding involved AFAIR.
You are probably applying for the wrong positions.
Try to get a junior position somewhere or try to leverage your non-dev skills to get some job in product or project management
Try to get a junior position somewhere or try to leverage your non-dev skills to get some job in product or project management
PM is even harder to get into. Everybody thinks they fit in a PM job, so their application to openings rate is even worse. So ends up most PM job's first requirement is you have been a PM before... Entrepreneurship is so vague that it doesn't apply.
One'd think a Github with commit history is going to go further for dev positions. Not exactly it seems...
One'd think a Github with commit history is going to go further for dev positions. Not exactly it seems...
Success needs time, go back to your projects, listen to your users and make progress they love.
I agree to a point. Making something people love doesn't mean it can be a great business. A successful startup is a lot of things.
I got my first job with a side project that was not anywhere near successful.
Then did a Bitcoin LN Wallet, from concept, design to code, took only 2 months.
I am quite proud of both, even tho they were anything but commercial successes. With funds running low, I spent the past 3 months looking for employment. Hoping these polished project will shine me in good light.
Was I completely wrong. Nobody cares. Being a bootstrap developer I admit I am not the most academic when it comes to the projects. I was from an EE background from school, and was in embedded Firmware for almost a decade. I didn't know creating a 3rd table to track Reputation/Likes between a user and a Story is a database concept called 'Joint Table'. I have no idea that creating an equation to decay reputation inputs is called 'Freshness'. I’ve done hundreds of things in the year. I can barely remember half them, let alone with precise terminology in a time constraint settings. One thing I can show is everything is open sourced on Github. If point questions are asked about my demo, I can reference my code and explain everything.
It seems like in today's world, nobody cares about experiences or what real product you have launched. It’s all about algorithmic puzzles in 45 min and describe hypothetical systems with academic terms. I can build an entire social media MVP by myself. But I can't get a job maintaining Settings menu for a (shall be unnamed) unicorn with a very similar app, which said app needing a headcount of 3k to keep running...
My advise is, if your side project didn't become entrepreneur success, they are useless dead-weights. You might as well spend your time reading CTCI and doing Leetcode.
Rants over... Help much appreciated..