Skip to content

Instantly share code, notes, and snippets.

@swapagarwal

swapagarwal/good-project.md Secret

Last active Feb 24, 2021
Embed
What would you like to do?

What counts as a good project at Elevate Labs?

This is a comprehensive document to help you understand what a good project looks like, in the context of getting accepted into Elevate Labs.

Before talking about the anatomy of a good project, let's see what does not qualify as good and clear a few things upfront.

What does not qualify as a good project?

  • A static website, anything with fixed content which displays the same information to every visitor. e.g. Your portfolio website, a business landing page, one-page website, one-page game, etc.

Here are some rules of thumb you can use to determine whether your project qualifies or not:

  1. Did it take you less than 20 hours to build? If yes, it's probably not a good project.
  2. Can website builders like Wix or Webflow be used to replicate your project? If yes, it's probably not a good project.

Understand that you'll be interviewing for a web "app" developer and not a web "site" developer; don't get confused between the two. We don't have anything against building websites per se, but you need to build a webapp to get accepted into Elevate Labs.

What are some examples of web apps?

Google Maps, Microsoft Teams, Outlook Mail, Zomato, Flipkart, etc. HRs of these companies are looking for web dev talent frantically. There's above-average money, and a great career in becoming a webapp developer.

With that out of the way, let's address some frequently asked questions.

Is cloning okay?

Cloning is allowed. Feel free to add your twist: Build a Tinder for books, and name it Binder. Build Facebook for non-profits and volunteers. Build Instagram for quotes only.

What are we not evaluating you on?

  • You don't need to have revolutionary ideas. We have Product Managers for that.
  • You don't need to have a great design sense. We have Product Designers for that.

The above things are good-to-have, i.e. they certainly add value but it's not expected from you to have these skills.

What are we evaluating you on?

You'll be working in a team where you are bringing your technical expertise to the table. Complexity in your webapps is what we'll be evaluating you on.

Can you give me ideas of what would qualify?

Now we are talking. Here are some examples that would qualify:

  • Social media application (Twitter, Facebook, etc.)
  • E-commerce application (Amazon, Flipkart, etc.)
  • Media player (Spotify)
  • Productivity app (Trello, Asana, Evernote, etc.)
  • Messaging app (WhatsApp)
  • Booking app (MakeMyTrip)

Whoa! Wait. Wouldn't every project take a lot of time then?

Yes, it takes time and commitment to make good projects. The reason why software salaries are good is there's a shortage of supply of good developers. Most of you reading this wouldn't do it. If you do it, we'd be happy to elevate you into a good full-time job.

Glad you're reading further. Let's go deeper into a good project.

What features should I aim for?

For any app, you can classify a feature into core (without which the app cannot function) and auxiliary (which helps in the core function). Let's take the example of an e-commerce app. The primary goal of the app is to place an order. Here are some features along with their categorization:

  • Product Listing - This is a core feature. You cannot place an order without seeing the list of products.
  • Address Input - This is again a core feature. Without your address, the order can't be shipped.
  • Checkout Flow - This is definitely a core feature.
  • Wishlist - Now this is an auxiliary feature. If you can't add a product to wishlist, it doesn't hamper your ability to place an order.

Your app should contain all the core features.

Start by writing the goal of your app beforehand. That will make it easier for you to decide whether a feature is core or auxiliary.

Here are some examples of goals:

  • Social media application - Share what's on your mind and see what others are doing
  • Media player - Play a song/video seamlessly
  • Productivity app - Add to-do items, assign deadlines, get a sorted view of everything that needs to be done
  • Messaging app - Able to chat with someone, i.e. messages should be sent and delivered very fast
  • Booking app - Find a good deal (search by your location, add filters, book a trip)

What technical features should I showcase?

Okay, let's talk in quantifiable terms now. Your app should:

  1. Be a Single Page Application (SPA)
    If you haven't heard about SPA yet, don't worry. Now's a good time to read about what it is. In short, your web app has faster transitions compared to loading entire new pages.

  2. Have multiple routes

  3. Have more than 3 core features

  4. Talk to a backend

  5. Be deployed in production mode

  6. Have all CRUD (Create, Read, Update, Delete) operations for core features

Additionally,

  1. At least two projects should have some concept of user management (signup, login, forgot password, personalization)

  2. At least two projects should use some kind of database or datastore.

Some good-to-have features which will fetch you brownie points are responsiveness (i.e. a good looking and usable mobile view), having meta tags for link previews, dark mode, etc.

Should I showcase variety?

Definitely! Think about it. The aim is to impress someone enough that they hire you, right? Don't build 5 e-commerce apps then. Show that you can do different things.

Here are some examples to show variety (pick any 5):

  • A React app
  • A vanilla JS app (this will help you in interviews as well)
  • A React app with offline capabilities i.e. PWA
  • A Chrome / VS Code / Firefox plugin
  • A React Native app
  • A npm package published with tests, docs, and versioning
  • A REST / GraphQL API

Note that this is not a comprehensive list - your project does not need to fall into one of the above examples. If you can showcase variety, our hiring partners are ready to take fast-track interviews.

Are full-stack apps required?

No, but make sure you're consuming APIs in your app to make it dynamic. Feel free to use fake APIs or backend as a service (like Firebase, Hasura, Amplify, etc.).

Can I make a backend project?

Yes, you can. But only one or two. Make sure you document your APIs, follow REST / GraphQL best practices, add tests, and have versioning in place.

Where can I find some inspiration?

Here are some places you can browse for ideas:

  1. Play Store, App Store
  2. Firefox Addons Store, Chrome Plugin Store
  3. Product Hunt, Show Hacker News
  4. /r/AppIdeas, /r/SomebodyMakeThis
  5. Dribbble, Behance

TL;DR

Here's a quick summary:

  1. The overall goal of your portfolio is to impress someone enough that they hire you.
  2. Cloning is okay.
  3. Build web apps, not web sites. Showcase complexity in your projects. A complex project should take you at least 20 hours to build.
  4. Aim for variety.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment