Post-Graduate Blogging

As the weeks progress through the Capstone quarter, I’ve started to think about blogging in a post-graduate sense. Short of creating a full-blown custom solution, there are many off-the-shelf options available such as WordPress, LiveJournal, and Tumblr. I recently became aware of Static Site Generators such as Jekyll, Next.js, Hugo, and Gatsby, which are somewhere in the middle of these two camps and leverage templating languages as part of the “glue” holding everything together.

Along with these solutions are hosting providers such as GitHub Pages and Cloudflare, which provide hosting for free/at minimal cost, offering clever integrations to kick off builds and publish content when a new commit is pushed to the main branch. These solutions seemed to provide the right balance of flexibility and management overhead as they can be completely serverless solutions if desired, which also comes with inherent benefits to security and scalability. I’ve learned many developers on GitHub take advantage of this offering to showcase their portfolios.

By generating static assets from a series of templates, metadata, and content material, you eliminate the need for a dedicated backend in most cases. There are no databases to manage, and when publishing to a hosting provider there are no frontend servers to manage either. Your pre-generated pages are all neatly bundled and shipped off to a server, or collection of servers in the case of CDNs like GitHub Pages and Cloudflare, for blazing-fast load times!

I’ve been tinkering around with this for the past week and have started to get a personal blog put together. Landing on Cloudflare Pages for content hosting and Jekyll for the static content generation, I’m able to make updates and add new content fairly easily by pushing my changes to the main branch after verifying locally. I can see how this approach could work well for a collaborative blog, as anyone with access to the repository could add new pages or posts to the site by pushing commits via Git for publishing.

Local development is easy too, with a couple of YAML configurations you can specify overrides for easier debugging. Any changes on disk also cause Jekyll to rebuild immediately, so you can quickly iterate on design and content. I’m using a spare Linux machine for my development environment which I connect to via Visual Studio Code over SSH.

If you’re looking for a lightweight blogging solution that can grow with you long-term, I recommend you check out some of the static site generators on

The COVID Vaccine…

Knocked out by the third dose

Since I received my shot a couple of days ago, I have been glued to the couch, suffering from the typical body aches and chills most have felt after each COVID dose. Thankfully, this is my first encounter with side effects worse than a sore arm. It’s been challenging focusing on project-related tasks, but the pandemic and the impact it has had on our lives crossed my mind.

More specifically, how new graduates will have several interviews conducted online. I applied to a few “new grad” positions during my fall term and went through Zoom meetings for code and behavioral assessment.

If the last two years have been anything like mine, then the most conversing you’ve had with strangers involves a greeting followed by thanking them as they hand you a receipt for your groceries.

I can be pretty introverted, and the pandemic caused me to embrace that trait.

When it comes to interviewing preparation, we have likely encountered similar advice or read through similar guides. If I summarized all that into a few bullets points:

– Get an internship or have some CS-related job experience
– Leetcode 24/7
– Keep all that data structure/algorithms knowledge fresh
– Practice problem solving out loud

As I began my 1-on-1 Zoom meetings for a couple of positions last fall, I didn’t find myself struggling with the coding challenges. I was working through the problems while giving the interviewer an explanation of my thought process. I could answer questions or apply suggestions given by the interviewer without derailing my progress. In a few meetings, I ended up with a detailed simple solution and a more efficient solution. 

So what went wrong? Why didn’t I get a job offer? Well, there’s obviously much more that can go into the interview process, but in my opinion, I felt like I had forgotten even the most basic social skills!

Who can blame me? Most of my close friends and my household have been following the stay-at-home policy for nearly 2 years. Plus, 99% of my responsibilities can be done at my house. I’ll admit, the few times I’ve driven somewhere other than our local grocery store, I’m shocked at how different things look due to the road and building construction progress.

I was in my own little world, surrounded by my pets, wearing pajamas, and focused on learning everything I could.

So while you practice for your interviews, make sure you practice your communication skills! Despite all these technical assessments and code testing during interviews, human bias will play a key role in whether interviewers will move forward with you. One of these biases is known as the First Impression Bias.

It’s essential to know your facial expressions and tone and be mindful of the interviewer’s interest level in you. Make sure the first impression you give is positive!

The Decision Lab: Anchoring Bias, explained.

The best advice I’ve received is to go into every interview with a list of questions to ask. Not just the role specifically, but maybe you know the names of your interviewers and can look at their recent job experience. You could look into the company and its products. Whenever you get an opportunity to ask the interviewer questions, ask questions! Fill up all the time you can with questions. Ask about the role, the company, the interviewer’s experience, and their personal interests. If you find a common interest with one of your interviewers, take some time to explore that subject.

So while your cramming Leetcode, take frequent breaks and brush up on your social skills!