We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

Projects

Assuming you're looking for your first job as a programmer, this is the most important section of your resume.

It's the section that will get you the interview, and maybe even the job. You should already have your projects listed on your GitHub profile, so this should be easy!

Each project entry should look something like this:

  1. Name of project. Again, it's best if the names of the projects are unique and memorable!
  2. Link to the project on GitHub. Make this link clickable.
  3. A short description of the project. This can be the same as the what/why descriptions on the project's readme.
  4. The tech stack and technologies used in the project.
  • Don't be afraid to use a paragraph or two for each project.
  • List 1-2 projects, 3 is the absolute maximum, and 2 is probably the sweet spot.

Don't Say “Just”

Don't use words like "just", "toy" or "followed a tutorial" to describe your projects. Don't downplay your work. If your work sucks, make it better, then come back and stop downplaying it.

Watch this ~60-second clip from the Backend Banter podcast where James Q Quick talks about new developers downplaying their work.

Examples

Here are some examples of good project entries:

go-rabbitmq

I built this wrapper of rabbitmq/amqp091-go to provide reconnection logic and sane defaults when working with RabbitMQ. The amqp091-go library is currently the most robust and well-supported Go client that I'm aware of. It's a fantastic option, but it's fairly low-level and stays within the scope of the AMQP protocol, as such, few quality of life features exist for RabbitMQ users.

Go-rabbitmq provides most of the nitty-gritty functionality of Streadway's AMQP, but makes it easier to work with via a higher-level API. Go-rabbitmq is also built specifically for Rabbit, not for the more general AMQP protocol.

go-tinytime

I built this library to make it convenient to work with lightweight timestamps in Go. The standard library's time.Time type uses ~24 bytes of data in memory. I was working on a project where I needed to store hundreds of thousands of timestamps in memory, and I wanted to reduce the memory footprint of my application. TinyTime uses just 4 bytes of memory per timestamp, and can be converted to and from a standard time.Time object.