Because your APIs and design docs also deserve a place to be shown
Everyone associates a portfolio with a visual representation of your skills, and this is trivial to do if you’re a developer who works with visual elements, such as a FrontEnd dev.
But what happens if you work purely on BackEnd? How can you make an API, a microservice or an OSS library “look nice”?
But you can still have a portfolio, so let me tell you what you should be doing.
Let’s get the most basic question out of the way: what is a portfolio?
A portfolio is essentially a way for you to showcase your skills and your work.
What’s that? You don’t have any work to showcase? Not a problem, we’ll also cover that.
The point here is not the “work” but the fact that through your work you showcase your skill. And that should be your focus: skills.
You want people going through your portfolio to understand what you’re capable of. So it doesn’t matter if you’ve built an API that connects with Google Maps, or just your run-of-the-mill weather API. The point is that you know how to interact with 3rd party APIs.
And that is what our focus is going to be.
Talking about focus, what are the key skills any back-end developer should highlight as part of their profile?
Well, if you ask me, I would try to focus on the following items:
- Back-end language: This is a basic one, you can’t really make a portfolio to showcase your backend skills if you only know HTML and CSS (for example). That said, you’re in luck, since most languages are backend-friendly. As long as you have projects using any of the following, you’re good: Node.js, Python, PHP, Ruby, Go, Rust, Clojure, and anything really.
- Data Modeling: I’m referring to the fact that you know how to think in terms of data storage. In other words, are you able to take a problem and turn it into data? Can you create database tables? Or encode your results in a format that makes sense (like CSV, JSON, etc)? Can you create a complex data model where different entities are related to each other? Do you know what an ER diagram is? Then use it as a visual aid for your portfolio.
- Design patterns: While design patterns are valid for every context, they’re quite useful and relevant in the back-end environment. This is why it’s important to show that you know about them. Which ones though? That’s up to you, there are many and the number is not really important, just the fact that you know about them and know how to use them in your code.
- Architecture patterns: This is probably not a hard requirement, especially if you’re on the Jr. side of the role. However, if you do know about patterns such as MVC, distributed microservices and so on, it’s always a good thing to highlight them. As a back-end developer you will eventually deal with such patterns, and showing you can handle them is always a good thing.
- SQL: Going hand-in-hand with your data modeling skills, showing that you know how to get data from a SQL database (probably the most common type of data storage out there) it’s a great skill to focus on. Chances are, you will be using it in the future.
- Understanding the client-server paradigm. This is one you’ll use quite a lot as part of your back-end role. It’s important to understand what a request from your client looks like, and what a response is. Are you using HTTP (which is a very common practice in back-end development)? Then, you better show you know what a request is, how to send one over to another service, and what are the usual characteristics of HTTP (such as response codes, verbs and so on).
You can definitely keep adding more skills, but as long as you have the above ones covered (with the exception of architectural patterns, which I consider optional), you’ve proven you are a back-end developer to whoever is looking to hire you .
The next big question is: where can you create the portfolio?!
Once you know what to focus on, the next big question is where to put it. The “hip” please use right now is your own Github profile. After all, you’re mainly going to be listing public repositories, and if you’re able to access Github (some countries aren’t), then you’re likely going to have all your “worth showing” code in there.
If that’s your case, then maybe consider watching the following video on how to customize your profile:
Now, on the off chance that you don’t have a Github account or if for some reason the work you want to show is not there, you can use any blogging platform. Just make sure it’s something that lets you customize it as much as possible. Avoid platforms like Medium, Hashnode and Dev.to since they only let you share written content.
You’ll want something like a custom static site, WordPress or something else. Any platform you can use to format how things look is good enough, since you need to make sure several things are displayed on the screen:
- The name of the project.
- The set of technologies used.
- A small description about it, highlighting the lessons learned and the difficulties found in the process.
- Any extra documentation you might find relevant (like adding the ER diagrams if applicable here).
And you need to pick which ones are shown first and which ones are less important. After all, you want to highlight the “best” projects, whatever that is for your own context.
Finally, what type of things do you think you can share in your repo? Let’s talk about that.
Alright, this is it, you know what you want to focus on, where to publish it and the platform you want to use for it.
Now what kind of content should you add to your backend portfolio? Well, it depends. What type of projects do you work on?
Your first focus should be code, showing as much code as you can, that should be your go-to. Anyone interested in hiring you as a back-end developer will want to read your code. Highlight any project you might have, they don’t need to be real projects. Any side project will do, even if you created them by following tutorials. Make sure your description talks about what you learned through them and any difficulties you found while working on it.
If you don’t have projects, or just don’t have enough things to show, then the next best thing to showcase is your knowledge. You can do that through:
- Content. Whether it’s written content in the form of articles or books, videos on YouTube or even a podcast. As long as you’re sharing your knowledge, you can position yourself as someone who’s worth hiring. In fact, you can position yourself as an industry leader, or a “thought leader” (for whatever that term is worth to you).
- What are you working on right now? You might not have projects to show, but you could potentially be working on something. Maybe you’re creating your first OSS library? Perhaps you’re working on a SaaS idea. Whatever it is, if you’re writing code then talk about it! Share your experience, talk about your design plans, and share any diagrams or ideas. Anything that might be worth talking about should be part of your portfolio. This can tell whoever is reading it that you have a plan and that you’re actively working to improve yourself.
In the end, the portfolio of a back-end developer is just as doable as that of a front-end dev. You might not have screenshots of nice-looking UIs to show, but you definitely have a LOT to show.
All you have to do is put yourself in the shoes of the person wanting to read your portfolio. What would they want to know about you? And tackle that question.
Do you have a backend portfolio? Share it in the comments for inspiration to others!