Learning new technology that you have never touched before is pretty fun if it's not something ancient like COBOL. I think we can all agree with that. At work, I'm stuck with using Laravel, VueJs, MySQL, Elasticsearch, and all containerized within Docker. Initially, when I started working at this place, I knew exactly none of these frameworks and technologies and that it was an uphill battle to learn all of this in a meaningful amount of time so that I could be productive.
One of the biggest challenges also contributing to this was that I am still currently a full-time student trying to get my Bachelor's degree in Computer Science. Be warned some or all of this may turn into a ramble of thoughts.
I was given a project at work that uses the previously mentioned stuff above, make a search engine that parses all uploaded documents and books that are currently uploaded on the website and section the results out for each department and to also allow users to upload documents and images all of which is saved on Amazon S3. Then make a general repository that lists all results in one centralized place all while making it look pretty and very easy to use for non-technical users. My first initial response to this was, I am going to need a lot of time to develop this and just hope it works out in the end and not break. I did not even initially think about my priorities of being a student still, I was kind of all focused on this. I initially got the project description in the summer and started working on an MVP right away to hopefully have something to show before the semester starts.
An example of what this application looks like with some stuff cut out is this
I started on all of this while not knowing how any of these worked except for MySQL, so everything for me was an uphill battle pulling my hair out error after error. One of my biggest frustrations with all of this had to have been with Elasticsearch and I generally do not know why. A lot of people seem to have an overall positive experience with using Elasticsearch and almost the whole time for me I just struggled with issue after issue trying to tie everything together. One Laravel package that helped me during this moment was Elastic-Scout-Driver. It saved me a lot of time trying to figure it all out on my own and provided me with a basic idea of how to approach everything. I still have mixed feelings if I like or do not like Elasticsearch just yet.
My overall experience with Laravel was pretty pleasant, initially, I wasn't that thrilled to be learning PhP since my first thought was that it was an old outdated language with nothing going for it besides WordPress. Laravel is quite a nice framework with a lot of magic going on behind the scenes to make everything feel more structured and less likely to shoot me in the foot which is quite nice. The inbuilt ORM in Laravel also has its tradeoffs but in my use case is perfectly fine, since I am not working on a database with millions of items stored in it. At the end of the day, Laravel is just another tool in my toolbox that I may or may not use for future projects.
This whole thing feels like a ramble of my thoughts transposed on a document, but that's really what this whole blog is about.
Copyright © Brandon-travis.com 2022.