Projects that increase chances of getting an interview?

How would rate a chat application project for those, who are new/fresh to web/software development?
How much favourable it is?
Opinions appreciated.

I think the point is just to build apps. Don’t worry how original they are. Just build stuff. The one thing that I think would be a turn off will be apps build for curriculum or from tutorials - they’ve seen those all 100 times. If you can find something a little different, that’s great. Remember, they’re not judging you on how good you are on having ideas for apps, but how well you build the app.

If I were reviewing an app for a potential hire, things I would like to see:

  • A well thought out app, maybe not original or clever, but a coherent idea (maybe not the most important but it is the first impression) - along with that, some reasonable styling
  • A well coded app, following best practices
    • good variable/function names
    • small files that deal with one thing
    • small functions that deal with one thing, preferably pure functions
    • DRY code
    • etc.
  • Good and consistent code formatting
  • A logical and consistent folder and app structure
  • The app works as expected, no bugs (None of this, "No, I swear, this was working last week!)
  • No short cuts (“OK, it should work this way, but I can’t figure out how to code this.”)
  • Deployed on a site (Not an online IDE like Codepen, etc.)

That is probably a bare minimum of what I would expect.

Other things that would impress me:

  • A backend - it doesn’t have to be fancy, but something with accounts and DBs and everything else are more interesting and take more skill
  • Good git practices - lots of feature based commits, not one mega commit
  • Unit tests
  • At least a few end to end tests
  • A CI/CD pipeline
  • Good use of relevant libraries but no “over the top” uses of libraries just for the sake of sticking them in

Again, I don’t care if it is original or a good idea. A random name generator for stuffed animals? Sure! It has accounts, ability to comment and vote, social medial sharing, etc, etc, etc. It’s not the idea, it’s how you implement it.

I understand that you may not be able to do everything on that list. That is just a goal. Do what you can do. And then learn more and build something bigger and better. I was probably only just starting the second list when I got my first job. But the further you go on that, the better your odds.

4 Likes

Thank you Kevin very much for the time taken to provide the insights. I appreciate that.
And I would be glad to get a feedback on the project once I’ve completed it.
Anyways, coming to the use of github, I have an account but didn’t integrate it to track my project changes. So, could it leave a bad impression on the employer?
And I’m already about 2 months in the development cycle of the project. So, what your thoughts are on this?

Thanks for sharing your experiences, a road map like the one above is a valuable help when you are fighting through the jungles called interview training and job hunt.

Hello,
I don’t think any employer should scold you for not updating the project for the first two months. We are still learning and juniors in the end.

You should, however, make a repository and update and document your projects from now on.

I was told version controlling is an important developer skill. When you are on top using a version controller like Git, you have a very valuable point to add to your resume.

1 Like

Thanks Daniel for the advice. Really needed that. Would do what’s required to be have an advantage. :slightly_smiling_face:

A complex chat application that can run at scale, or even a low level scale that can be demoed and used by users would be a rather impressive project. However building a complex chat application is, well complex.

A very simplified “real-time” web-based chat application can still show of specific technologies, and skills that are somewhat outside of the traditional scope of web development. That said, it still isn’t too much of a beginner project.

There is one caveat. If you use Firebase (or similar) things are less impressive than if you built the rest of the stack yourself.

The reason for this is Firebase would allow you to build a chat application super quickly as it’s a primary use-case to the point they give out demos around chat apps. This isn’t to say it does all the work for your, but it would look totally different if you build your entire chat application stack yourself, or if you used Firebase as a platform.

To get an interview you’d preferable want to put your best foot forward that provides the best example of your overall skill. So having one or a few higher complexity projects would look the best on a resume and portfolio (you got to have a portfolio) and a way to access them running “live” would be the right way to go.

It’s not so much a “bad impression” rather there is no impression if you don’t have a github. This would leave all the other aspects of your job application to be judged more directly. It would be up to your resume and portfolio alone to get attention. This generally would lessen your odds.

I’d go take your projects and get them on github if you still have the source code. This shouldn’t be too much of a problem if they are already finished.

I’d consider looking into github, on the side and playing around with it along with your other learnings. You shouldn’t have too much work under your belt to matter much at this point, but if you do start working on any projects of any scale I’d think about getting them into github if you can.

Going back to the original question about a chat app, odds are you wont have enough experience to build a full-stack chat app, and probably have to cut a large amount of corners with a Firebase based one to get it to work. I’d recommend trying, but I’d consider it more of a learning experience than a full fledged attempt. A chat app can get pretty complex pretty fast, so its a good thing to learn around, but not the easiest project for even those with more experience.

Good luck, keep learning, keep growing :+1:

2 Likes

Would it have a bad impression? Maybe a little. But what is more important is are you using github well recently. They know that you weren’t born knowing how to do it, the point is if you learned somewhere along the way.

Whenever you have a project you should initialize it as a local git repo. You should make regular commits based on sections of code/functionality completed. Realize that this is what you should do, even if you haven’t created a repo on github - you can connect those up later. The history of those commits will be preserved - that’s what they want to see. If you’re working by yourself, then regular pushes aren’t that important, but commits always are.

If you haven’t already, initialize your project as a local repo and hook it up to github. There are plenty of videos on how to do this, it’s not that hard.

Granted, this isn’t the most important thing - that’s why it’s in the second list. But it is a pretty easy thing to get started on.

Thanks for the advice. Appreciate the time taken.
Anyways, I don’t know much about firebase and what problems does it solve cause haven’t used it yet. But, I have been building the project using MERN stack. And the logic of the application have been written using the the technologies of the stack. So, could that be a problem?

Not sure what you mean, or are asking.

There is 1 key piece of technology to support a real-time chat application that you’d need to include in your stack. Its websockets, you could also use some abstraction over websockets using something like socketio.

With this technology your client-side would “get noticed” of data from the server, which is a key trait of a chat application. Otherwise the best you can do is have your client-side “poll” the back-end continually, say ever 5 seconds to see if there are differences, but this approach doesn’t scale and would go against doing a chat application to show off skills.

This also wont consider any finer details of the stack to support different levels of functionality. Stuff like file uploads for pictures/files, emojis and group chats are all things that you could add/remove to make the project more or less complex.

There is also other requirements you’d have to consider that are not unique to chat applications. Stuff like authentication, security, deployment, and management. Regardless of how complex you’d make the project, you’d still have to tackle these for it to be “complete”.

2 Likes