Monday - March 14th, 2022 - 17:03:33 (E.S.T.) - 9th Blog Entry
Resumes, Interviews, and CSV/XLSX-to-YAML Lessons
Wow time flies. It's been a few weeks since I have been able to make an update here. First, I'll just say where I've been spending most of my time. Mostly I've been working
in Python experimenting with different libraries and analyzing data. I have also been applying extensively to software developer positions. I took some time, actually I paid for
a resume creation service called BeamJobs and they are 100% worth it. I've already had a few interviews in the last 2 weeks from this resume alone. Granted, I had to revamp my
entire resume and remove the last 8 years of jobs since they didn't have anything to do with software development. So I had to get creative. Anyway, the service is super easy to
use and creates a professional looking resume in minutes. If you want to see what it looks like, you can check mine out here. I can't
promise this will be updated in the future as I'll probably forget this hyper link exists as time goes on.
So two of the companies I interviewed for gave me take home assignments. One assignment is a very complicated assignment which doesn't have a deadline. It's for a pretty high profile
firm who works for the government and handles ciphers, encryption and steganography. I had put it on the back burner temporarily waiting to get some free time. However, a second
company I spoke with gave me a simpler task which took roughly ~9 hours over 8 days. I chipped away at it little by little. The goal of the task was to take some given datasets, whether
they be in CSV or XLSX
format, and convert them to YAML format. I've done this sort of stuff before. In fact, it was taking CSV files and
converting them into XML documents. You can see my source code here on how I did that.
Actually, this particular task had a really cool feature in it - I had to embed a base64 encoded file into the actual XML document itself. Anyway, back to the other task regarding
converting CSV/XLSX to YAML.
I ended up going way over scope on this task. Mainly because I like to seek out as many edge cases as possible and then learn how to make sure they are
covered. A few different cases I came up with was ensuring the passed in 2 arguments from the command line. If it was less than 2, then program execution would halt. If a user
did pass 2 arguments, then I would check both paths to ensure they existed in the system. If they didn't, execution would halt. I used the csv reader library that's native to Python
to parse the CSV files. It's a little more difficult than using pandas which is why I chose to do it. I was trying to keep the script light weight. However, to parse the XLSX input
required an additional library that's not native to Python, called openpyxl. I've used this before so I had some familiarity with
it. Again, I could have used pandas and probably simplified the entire process but I like to make my own life difficult for learning sake.
I have taken a breather from doing any more web development, just mainly because my free time is limited. I think though, between doing this cipher/steganography assignment and potentially
making this site a little prettier, I should be able to commit some more time relatively soon. I did get the mariaDB database finally working. That was fun trying to diagnose why I couldn't
connect to my mariaDB server via PHP. Come to find out, I needed to actually renamed this website's extension to .php from .html. I guess there's a way to get the .html to have PHP code
executed inside it but it wasn't worth trying to figure that out since literally changing the extension allowed the connection to my server to work.