Side Projects are deadweight to employability
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..
83 comments
[ 3.0 ms ] story [ 148 ms ] threadI 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.
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.
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?
But it just boiled down to algorithm challenges which is mostly down to how much time one have 'wasted' to excel at them.....
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.
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.
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 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.
Sadly, looking for excuses to rationalised that the interviewer doesn't like you is still a thing.
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.
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.
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.
[1] https://en.m.wikipedia.org/wiki/Associative_entity
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...
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).
- 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).
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".
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 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.
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 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).
Side projects have been a huge benefit to working in the VR industry, because when I got started it was rare to find people with professional experience.
Also, failed side projects are way more helpful than failed algorithmic studying.
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?
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.
Worse is trying to improve a project where the diaster has already happened
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.
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.
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.
Try to get a junior position somewhere or try to leverage your non-dev skills to get some job in product or project management
One'd think a Github with commit history is going to go further for dev positions. Not exactly it seems...
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.
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.
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 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.
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...