If I were to build an app that was certain to get me hired what would it be?

I don’t have enough projects and I need some ideas.

Ideally, I want to build one cool app that would impress most employers, but I suppose it should still be reasonable for a junior to accomplish.

I’m working on a chat app with react and node. Would that be enough?

2 Likes

Good day @alkapwn3d,

Have a look at this blog post on Medium – >https://medium.freecodecamp.org/the-secret-to-being-a-top-developer-is-building-things-heres-a-list-of-fun-apps-to-build-aac61ac0736c

I came across it last year. I haven’t started working on them but will surely do once I’m done with FCC projects.

1 Like

I don’t think there is a single application that can get you hired at any company.

The interviewer might not be very impressed by a chat application but could be blown away by a weather app for example. In which case it would be best to have a handful of applications that each serve a unique purpose and each one could show off different knowledge from your skillset.

Another thing to consider is the type of company you are applying for. Having an application on your portfolio that has relevance to the type of business that the company you are applying to deals in could be a major advantage over other candidates.

Either way I think a chat app is a great application to have on a portfolio.

And although you are probably aware, FCC youtube channel has some videos on a chat app.

2 Likes

I feel like the statement “certain to get me hired” and “reasonable for a junior to accomplish” are contradicting.

For example, you can certainly get hired at Facebook, if you build 90% of Facebook by yourself and start taking away market share. If you replace Facebook with any other software company and just start “beating them at their own game” and walk in and ask for an interview, your basically going to get “bought out” for the price of a single developer (yourself).
I’d say this is probably the only certain way, but is totally not realistic haha. There isn’t really a certain way to get hired at any company (what if they aren’t hiring at all?)

I agree with @camelcamper, having a wide range of applications, or specific applications for where you are applying is probably the best. For example, if you are applying to Facebook, and you write an app that looks feels and works similar to Facebook, or part of Facebook, like Instagram, or just Messenger, you will look good. If you use the same stack/tools as Facebook you will look even better.
So don’t use Angular or Vue for your front-end if your applying to Facebook, and if you can find out the backend stack Facebook uses, use the same stuff in your project.

But since you should apply to more than just Facebook, being a jack of all trades is better than a specialist when job searching. You will appeal to more companies, be ready to learn more (in depth) and gain more working knowledge of more things. You should also do some research into what jobs are near you, and where you are applying. If most jobs are asking for Angular, you won’t get much use if you just learn React. Now, if you learn both your better off, but I’d consider it redundant skills, since you will only use one of them in your job most likely.

Goodluck and keep building :smile:

2 Likes

Chat App on heroku
see on github

took me 2 days of straight coding to build this POS and it still doesnt work right lol

1 Like

That chat app flat out does not do anything for me. Nothing works at all.

1 Like

What app might not matter as much. Just make sure the ui looks modern and clean. I’ve seen people have simple apps and get jobs but they put a crap ton of hours into the ui and you can tell when you look at it. It blows you away. Have to catch the eye of the recruiters who probably don’t know anything about what’s going on behind the scenes.

1 Like

try it now

Chat App

It works now, looks great!
From what I noticed instantly, for some reason it re-renders messages components constantly even if messages are the same. Clearly something fishy going on there. Element id is “chat-wrapper”, it constantly re-renders.

nothing fishy just shitty programming. i couldnt figure out how to update all open browsers when a message is sent so i just had the server constantly send the chat history. i just wanted to get it working be done with it.

This is really bad, not just fishy. You do not want to re-render not changing elements constantly, ever. This is even one of the things that resulted in the invention of React from what I understand. Right now you can not even select text in chat box to copy it because of this.

Can’t you just edit this part:

setInterval(() => {
  if (chatHistoryChanged){
    let html = chatHistory
      .map(
        i =>
          `<p><span class="user">${i.user}:</span><span class="message"> ${
            i.message
          }</span></p>`
      )
      .join("");
    socket.emit("message-history", html);
    chatHistoryChanged = false;
  }
}, 10);

And add some global boolean that monitors change somewhere around line 31 where you declare chatHistory?

const chatHistory = [];
var chatHistoryChanged = true;

After that you just do chatHistoryChanged anywhere where you change chatHistory, like here:

socket.on("client-message", data => {
    chatHistory.unshift(data);
    socket.emit("message-history", chatHistory);
    // clean up history
    if (chatHistory.length > 100) {
      chatHistory.pop();
    }
    chatHistoryChanged = true;
  });

I only did quick dirty look, but would not that work?

1 Like

dude that’s perfect.
i didnt even think about using a Boolean.
thx man!

function socketHandler(socket) {
    console.log('user connected');
    let chatHistoryChanged;
    socket.on('client-message', data => {
        chatHistory.unshift(data);
        socket.emit('message-history', chatHistory);
        // clean up history
        if (chatHistory.length > 100) {
            chatHistory.pop();
        }
        chatHistoryChanged = true;
    });    
    setInterval(() => {
        if (chatHistoryChanged) {
            let html = chatHistory
                .map(
                    i =>
                        `<p><span class="user">${
                            i.user
                        }:</span><span class="message"> ${
                            i.message
                        }</span></p>`,
                )
                .join('');
            socket.emit('message-history', html);
            chatHistoryChanged = false;
        }
    }, 10);
}

I would say an app that can impress future employers should have at least the following:

  • Login
  • Authorization (allowing user do/see certain things only if they are logged in/authorized)
  • Protected API endpoints for your routes
  • Data storage on a cloud (so basically an online database)
  • CRUD operations (all of them)
  • A clean and appealing UI

I highlighted the UI because I feel a lot of programmers forget about the design, but what they don’t know is that if the design of your app doesn’t make you standout no one is gonna take a look at your code, not even other programmers.

So whatever it is that you do make sure it looks professional, put a lot of hours into the design, if you are not a designer then get one from dribbble, etc. All your projects (included your portfolio) must look good and professional. Remember, first thing you need to deal with are recruiters and people from HR, these people don’t care about your code, if your projects look like they were designed by an amateur then you will be ignored.

5 Likes

I asked this question 1000 times on forums and reddit and I always get answers like “build something that solves a problem” or “It doesn’t matter what you build, you just have to show you know technology and stuff”. What if I don’t have any freaking problems and no ideas?? I hate those answers. I feel like I can build anything after reading or taking a course and then do a project but nobody ever told me how complex or big projects have to be and what employers want to see in the projects.

Gilbert has a good answer. My plan is to build full stack apps from legacy curriculum and make them look appealing to recruiters, and then I hope that and CS degree will be enough.

YES X1000. I am right with you there!

i think the more i code the more i understand what they mean. it doesn’t mean you have to solve great problem. code the dumbest most useless thing you can think of. like an app that converts keyboard presses to key code. or an app that emails you when its raining outside. or to remind you to clean your room. just anything. the dumber the better

1 Like

I faced the same problem back when I was learning React and wanted to build some projects to become proficient with React, I totally understand how frustrating those answers can be, I’ve been there.

My advise is to just re-create things. This was my first project with React, it’s been done hundreds of time but nobody cares, the point is just to showcase your skills while making sure the project looks good and also makes sense (like it’s something that people would like you to build for them). Of course I took the time to design this myself to show my skills both as a programmer and as a designer, but if you are not a designer then that’s fine, just a take a design from somewhere and if anybody asks then you can be honest about it and tell them you did not design it yourself. Trust me, it’s better to clone an app that is fairly complex and people are familiar with rather than just come up with some random project that nobody understands but yourself.

Also, take a look at this video https://www.youtube.com/watch?v=3wa09yTuEWU&t=36s, I highly recommend listening to this guy (for web developers)

1 Like

I also did an app just like yours, showing movies and searching them. IMO, that’s a great project to learn React but I think most employers won’t care about that. I just feel its too simple and you can build that in less than a week.

I often watch codingphase. He’s a cool dude, but sometimes unrealistic.

It’s simple, yes, but the design of this app seems to be very appealing for some people, I’ve received positive feedback and probably has caught the attention from HR and I’m almost sure it’s because of the design. Besides we can all agree that this app is better than just another todo app or a calculator, something many beginners do here on this forum.

Also if you feel a project is too simple as it is, try adding more functionality. For example, I had a landing page for a restaurant, it was just static. After I learned Node.js, I learned the backend for that project so the client can manage the content of the site, it was a good exercise as I implemented everything I mentioned in my first post on this thread and more.

2 Likes

Whatever you write, write tests! TDD, BDD, that’ll get you hired.

2 Likes