A few weeks ago we received a CV and an application for a backend engineering position from a person who had just finished a programming bootcamp course.
This person had a few portfolios of projects put up on GitHub which was listed out on the CV. We are a Python/Django heavy organization, so I asked for some samples of and prior Django work.
The person pointed to one, but after my engineering team examined the work, we decided against an interview because we are looking for someone who has more experience on pushing code and maintaining them on production.
To the person’s credit, rather than accepting the rejection, this person continued asking for feedback:
Thank you very much for your feedback.
I have a quick question if you don’t mind, what the team expects as a junior backend developer?
Building CRUD apps, and using the Spotify API which is quite complicated is already, in my opinion, something advanced for a junior level.
I want to know what their expectations are so I can learn and try to improve myself.
These are the types of questions that many of us who are starting out in the industry will have.
So we sat down and wrote an email to address these questions:
– The source code can be leveled up. Currently it looks straight from some tutorial. Learn about good Django project structure, beyond what is shown in the tutorial. Add proper README with at least a Quickstart section on how people can run it. This will show it’s a project by professional developers, not just a result from following some tutorial. Refer to our starter project for an example
– Learn proper naming – class should use nouns etc. Also looks into CBV vs FBV, Luke Plant’s handbook is a good write up on this topic
– Go beyond CRUD, introduce some business logic and make it prominent in the README. Can also link to a write up about the logic implementation. Separating business logic into different layer can also help although it might looks over-designed for a simple app but mention upfront this is for learning purpose
– Start looking into writing tests.
– Another example of Django project
– I personally can say that writing tests is one of the hallmarks of a true engineer (we use the word engineer because you’ll need to know more than just programming to be effective in this industry). Try to build a habit of writing tests first before going into the business logic (Test Driven Development).
We wrote out the above pointers and sent out the email. Hopefully they are beneficial pointers on where the person can head next to level up.
And oh, if you do ask and receive feedback such as these, please also take a few seconds to write back to say thank you. These simple gestures do help us maintain our motivation to help out when we can.
Levelling Up is a series of posts that we put out to share with the community about ways to improve our careers, businesses and lives. Sometimes they will be in the form of answers to questions that we receive, while other will be from our own thoughts and observations.