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)
environment configuration (using a package called config)
connecting the API to a Front-End application
deployment 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
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
Most of the time when I’ve worked with environment variables, I’ve used .env files to manage. You can create a .env.development.env.production .etc based on the environment.
With config, you essentially do the same thing essentially, but with yaml files. An example might be like this
development.yaml
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! 👋
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
Week of Aug 22
❌ 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)
environment configuration (using a package called
config
)connecting the API to a Front-End application
deployment 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
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:
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:
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:
_config_
packageMost of the time when I’ve worked with environment variables, I’ve used
.env
files to manage. You can create a.env.development
.env.production
.etc based on the environment.With config, you essentially do the same thing essentially, but with
yaml
files. An example might be like thisdevelopment.yaml
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 forNODE_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! 👋