History with Backend Development
Backend work is what I am most comfortable with. I really enjoy the architecting process and mapping out how different pieces fit together. It’s one of those things where there are countless places to improve on. How can I write this query so it's recognizable at a glance to other developers? Can this be reused easily enough? Can I separate things out better so that the code flows better? I am constantly looking at my old code and thinking about what I could have done differently/better and that's what keeps the job so rewarding.
For example, one of my favorite projects from my previous position dealt with creating a system to allow our agents to develop their own unique program pages that avoided using an old and unreliable CMS system. An Agent can have many programs, each program may or may not span multiple colleges, each college needs to link back to a central location and so on. Mapping it out on paper, then building each section individually and connecting them all together in a way that works was deeply rewarding.
Technologies used for this website
Spring: Personally I just find spring very easy to work with. Spring boot let me set up a basic controller in a flash, and I am comfortable enough with the layout that it made sense to use. Since this website is mostly a companion to my resume, I am not really using it too much. My plan is to redo it in Ruby on Rails to build some extra experience with it, but that won't be deployed in AWS.
Groovy: Java was the first language I learned so it's what I'm most comfortable with. With Kotlin and Groovy growing so much in popularity it made sense to use them as well. Having worked with both professionally, I didn't really have too much of an opinion on which to use so I just flipped a coin.
PostgreSQL: I wanted to use a relational database for my backend so I went with what I'm most used to, PostgreSQL. I have used MySQL and Microsoft SQL professionally before, so the choice didn’t matter too much to me.
Deployment Notes
Deploying this was the biggest “learning experience” for me. Plan was to create an AWS EC2 instance, run the jar, and be done with it. Did you know that AWS won't let you create an ACM certificate for an EC2 instance because it wants you to use Route 53? I didn’t! Hence why youshouldhireryanserver.buzz came to be.
The certificate work, setting up CORS, as well as setting up a load balancer to handle traffic to actually use said certificate was a humbling experience with a lot of trial and error.