The Things You Need to Consider for Your Coding Portfolio
Plus ideas for projects to code
There’s been an explosion of new developers entering the field. The competition is often fierce — so how do you differentiate yourself for that dream role?
If you’re fresh out of Bootcamp, university, or the self-taught track, having a solid portfolio for your entry-level job application is a must-have addition to your resume.
Or, perhaps you’re looking to upgrade your paycheck, and after some shopping around, you’ve decided that it’s time to start making moves.
Here are some things you need to add to your portfolio that will help potential employers determine your suitability for the job.
CRUD is an essential part of every programming project that you’ll ever encounter. It’s actually one of the foundational actions that you need to know how to do for your chosen language and framework/library specialization.
This is because every interaction you’ll ever encounter falls into one of these things: create, read, update and delete.
If you can demonstrate CRUD, then it signals to your potential employer that you’re capable, at minimum, of making actual applications. It means that you can definitely hit the ground running on whatever project they’ve got planned for you.
When it comes to CRUD, you may set up your own database with custom made APIs to perform the actions. Here are some quick and easy apps to boot up that are useful but have small schemas, which will help with scope creep.
Recipe bookmark app
Big Oven API provides a free database of recipes, complete with grocery shopping lists, images, and reviews. You could make an app that uses this to satisfy the read requirement of CRUD. For create, update, and delete actions, you could have a bookmarking feature in order to track a user’s set of selected recipes. This can be pushed through to an independent database of your choosing.
You can create your own schema for a simple reservation application. It doesn’t have to be fancy. Imagine you have a customer. They’ve discovered your restaurant, bus, hotel, or motel. They want to make a reservation. For this, you’ll need to be able to read prices and make them available from a database. Each booking will reduce availability accordingly. A customer may want to amend or cancel their reservation — which then covers the update and delete portion of CRUD.
It’s easy. There’s no animation required — unless you want to include it. The screen could be flashing several randomly generated math problems that the user has to solve. You can have a leaderboard, which covers your read portion. Every time a user finishes a game, you can update or create a score. A user can also choose to remove their personals scores, which covers the delete portion.
It’s one thing to be able to CRUD — it’s another to demonstrate your ability to query databases. With CRUD, you would’ve displayed your ability to connect to a database and do something meaningful with this connection.
Actual database skills are harder to gauge because we don’t often have large datasets to filter and shift through. A lot of legacy databases also tend to have complex schemas, sometimes with strange names.
There are different levels — beginning at simple hello world equivalents that deal with basic tables, columns, and rows. Advance roles may include temporary tables, ACID, transactions, normalization, and denormalization.
So how do you demonstrate database skills?
One way is to write or record tutorials about it. No matter what your skill level, if you’re able to communicate succinctly about a topic, it means that you truly understand what you’re doing. It doesn’t matter what your potential audience size is — what matters is that it’s there for potential employers to see.
It doesn’t have to be the entire almanac about the topic. Just a few articles on the things that interest you the most, or things that challenge you as a developer. This will help increase the depth of your knowledge, and it can also help you figure out what the gaps are in your current state as a developer.
Cloud Services Skills
If you’ve never worked with a cloud provider before, do your job demand research first. Some areas may prefer Google Cloud over AWS, or AWS over Microsoft's Azure. Pick a service and figure out how to deploy a fully functional application — front end, back end, and database.
You don’t have to be a full-stack god, and your app doesn’t have to be a visually polished piece of art. What matters is that it works in the cloud.
Every cloud provider I’ve encountered has a free tier of some sort. Leverage this for your applications and see how it works.
But what do you put on the cloud?
Remember your CRUD application? That can easily be launched in one of the major providers.
One thing to be aware of is that Cloud providers tend to also allow for manual deployments. Figure out how to automatically push from your console or set up deployment pipelines to run. You can create pre-checks on code before deployments, setting up certain rules before your deployment is passed to the next stage.
For example, your code needs to be reviewed before it can be merged to a branch and pushed to a live environment. Or, perhaps a deployment is timed to certain days and hours only.
These are very real scenarios that aren’t often taught. If you can create them for your portfolio, you’ll certainly have an edge over others who just came straight out of their courses and degrees.
Everything nowadays requires a login of some sort. For custom solutions, users and management of them are a necessity.
The quickest method nowadays is social logins. It externalizes your user management system but still requires a certain amount of understanding of how things work to properly implement it.
Facebook, Google, and Twitter are major platforms that have login APIs available. You don’t need to worry about storing passwords in a safe manner or how to manage their login data. However, you still need to be able to tap into these APIs correctly in order to leverage their services.
Another thing to consider when it comes to identity management is security. We’re talking about how data is sent over the web. You can’t just validate on the front end and send everything in plain text through APIs.
Things you should look into if this is unfamiliar territory
Hashes and security protocols for passwords in a database. I’ve seen a few tables in the past where passwords were stored in plain text. User session is also another space you’ll need to explore if you’ve never worked with custom user management before.
Login, logout, and sign up APIs are easy to create, but deciding on the level of security to implement is another matter. There are cloud features such as two-factor authentication available, and learning to integrate these into your hypothetical applications can work as bonus points for your resume.
If we get down to it, a lot of businesses take payment of some sort online. It doesn’t matter which payment gateway you choose. As long as you’ve implemented one, the skills and ideas are transferrable.
Every payment gateway has a process lifecycle. There are also processes for pre-authorized recurring payments (think subscriptions) — something which is a rising trend across different industries.
There also different ways to process payments from any single provider — from hosted solutions (where the payment form sits on your page) to redirection links to the provider’s page.
App native payment gateways also have different implementations, so if you’ve coded something and launched it in Google or Apple’s app store, then you could also add a payment option to perform certain things — like getting rid of the ads for a certain price or subscription payment for a particular service.
If this is your first portfolio, it’s not going to be perfect the first time around. But the point is that you start one — no matter where you are in your career.
Even if you’re already working, building up your own set of personal portfolios can help you in the long run as you improve on your skills and grow as a developer.
If you’ve never worked in the field before, the above considerations are things that you’ll most likely encounter in real life as well. If you’re able to come up with a few quick projects that incorporate these elements, you’ll certainly have a leg up and actual relevant experience — rather than just theoretical knowledge.
I hope you’ve found all this useful, and thank you for reading.