Becoming More Proficient on the Back-End (Part 4)

Joe Previte
Joe PreviteFriday, August 23, 2019
Blue post-it on a book

In case you missed it, check out Part 1, Part 2, and Part 3 where I talk about my Q3 goals and explain how this series works.

Now, here’s Part 4!

Progress Update

Between Aug 12 and Aug 22, my goal was to complete the following:

Week of Aug 12

  • Modern TS Course
  • Logging — 15 mins
  • Pro-production Configuration — 15 mins
  • Front-End Application — 10 mins
  • Deployment to AWS — 30 mins

Week of Aug 22

  • Modern TS Course
  • Testing a NestJS Application
  • Plan out NestJS GraphQL app

Completed Weekly Goal(s)

I did not complete my planned tasks for the Week of Aug 22. However, I purposefully made the workload lighter for the week of Aug 26th to allow me to catch up.

I’m crossing my fingers no unexpected events occur next week and I’m able to get back on track.

🤔 What did I do?

The material from this update touched on things like:

  • logging (NestJS has a built-in logger)
  • lenvironment configuration (using a package called config)
  • lconnecting the API to a Front-End application
  • ldeployment to AWS

I had prior experience with most of these areas but it was still helpful to review them.

Milestone Achieved

If you remember from Part 1, my original Result Goal for the quarter was

Become more proficient in Back-End Development, measured by: shipping 3 features on the API/Back-End side

After completing the first feature in the Part 3 update, I’m happy to share I’ve now completed this goal! 🎉

During this progress period, I spent a lot of time working on the back-end. This included the following features:

  • 2 new entities
  • 2 new mutations

GitHub commit

The first entity I created

GitHub commit

The second entity I created

GitHub commit

The first mutation I created

GitHub commit

The second mutation I created

It feels exciting for me because I achieved what I set out to achieve!

Although this NestJS course focused on a different framework than what we are using, I was able to apply a lot of the same concepts to client projects. I’m also thrilled on the opportunities I’ve had to do back-end work here at Echobind.

I am slowly starting to feel more comfortable picking up back-end work without asking for help. I will continue to use what I’ve learned to ship more back-end features moving forward 😄

💡 Key Learnings

Some of these things were new and others were review but here’s what stuck out:

  • log levels

I heard about this at my last job but never fully learned what they were because I never had to implement them into an app. Since NestJS comes with a logger, the logger has methods for each log level. For instance, you have the following levels and what they’re used for:

  • log — general purpose logging of important information
  • warning — unhandled issue that is NOT fatal or destructive
  • error — unhandled issue that is fatal or destructive
  • debug — useful information that can help debug the logic
  • verbose — information providing insights. usually for operations
  • config package

With config, you essentially do the same thing essentially, but with yaml files. An example might be like this

server: port: 3000

Then when you want to use that value, you import the package and get the port with const PORT = config.get('server.port')

And it knows what yaml file to use based on the environment set for NODE_ENV. Pretty cool, right?

⁉️ Challenges

The biggest challenge of these two weeks was deploying my app to AWS. The back-end side wasn’t too challenging but setting up SSL for the front-end was troublesome. I’m used to services like ZEIT and Netlify, which handle all that for you. Either way, it put me outside my comfort zone and reminded me how thankful I am for services that handle SSL for me. Besides that, everything seemed to make sense.

That’s all for my update! Thanks for reading and catch ya next week! 👋

Share this post


Related Posts:

Interested in working with us?

Give us some details about your project, and our team will be in touch with how we can help.

Get in Touch