2/24/2025

#career#coding

First Paycheck

What's something you've changed your mind on in the past year?

It's been a couple weeks since I started my first job. It's a Software Engineer Position at a startup. I hate to admit this, but my experience here led me to believe that it doesn't require a huge amount of technical skill to build a product with paying users. Especially for your early adopters, users pay for a product they believe works.

And this is where I was fooled. As I trust that most developers also commonly fall into this trap. The trap of building a perfect product so that not only the users will trust us but we ourselves can trust the product in which we are building and selling to them. The perfect UI, UX, backend architecture, system scaling etc.

Developers often try to take the path of an Inventor since that is what engineers do, we invent, scale, and inspire not only ourselves but other people to the allusion of futures.

But I think in a startup instead of taking the path of an Inventor we should in a way also take up the role of a Magician. Users will pay for a product they believe will work. And in the early stages of a startup where you don't have the funding nor the time to spend on creating the future, sometimes a mix of illusion will help tip over the edge.

  • Maybe from the perspective of a normal users this all looks the same. The product acts as intended and thus beliefs are solidified.
  • Maybe that means that we developers should try to fool ourselves. I know this is often hard since we understand how the product works as a whole, and it's hard to sell something that we know is inherently faulty.

Ultimately, my goal this year is to build a product that users will pay to use. And sometimes that means fooling myself into believing in a work-in-progress user-validated solutions rather than begging for users to try out a fully built solution that no one has a problem to.

1/10/2025

Start of 2025

New Year New Resolutions

To me, resolutions have to be impactful and measurable. This avoids the goals like "I want to get healthier" or "I want be a better listener" and make me set clear, actionable, ACCOUNTABLE goals.

Last year's I achieved 2 of my 3 resolutions. That included:

  • Build a real world product that people would use
  • Join more groups and learn better leadership skills
  • Choke Yimin out in BJJ

I haven't seen Yimin at the BJJ Gym since the new years...

Anyway, New year, new resolutions! Here's what I thought of:

  • Get a tech job! (Six Figures)
  • Get someone to pay me $1+ from a product I built myself
  • Write a consistent blog for 2025

First Interview

Starting off the year strong, I interviewed at 2 start ups based in SF! In 2024 I had an interview rate of 100% (meaning I passed 100% of my interviews. Albeit that I only got 3 interviews XD).

This year I'm not so sure. My interview question was implementing every possible way of TicTacToe (similar to this). I bombed it. Did not understand the problem at all nor did I get any proper solution out. T^T. It's ok, chin up, and I now know what needs to be fixing.

Second interview went well. There wasn't any technical question yet but the founder asked me questions about resume, my history of building, technical struggles etc. He was trying to get a feel, if I was a great fit for the company or not. I was fairly confident, since I did build these things and I've always enjoyed talking about the technical complexity and areas of tech.

2024 was a year of Resume Optimization, 2025 will be the year of acing the interviews and MAKE THAT BREAD. I can already feel it, 2025 is going to be a great year. Happy new years!

12/27/2024

#reading#writing#paul_graham

Reading and Writing

The more I read Paul Graham's essays, the more I realize that one's ability to write corresponds with their ability to think. To be able to express and explain your feelings, mindset, or line of thought, a person needs to be able think concisely and clearly, even more-so when the only form of expression comes through words read through a paper/website.

This reminds of the scene in Billions from Taylor Mason

"I understand how hard it is to have things inside you that you can't communicate, I can't imagine how hard it must be to know HOW to say them and still NOT be allowed to" - Taylor Mason

Writing is the most refined form of thinking, conversely reading is the most refined form of learning. No wonder they say all successful people read a ton.

12/24/2024

#coding

Blog Infrastructure: Streamlining Content Publishing with Obsidian and GitHub Actions

This idea of a blog started when I stumbled upon Network Chuck's video. It was a start to finish on how he set up a blog site using obsidian, HUGO, and HOSTINGER.

Inspired by this, I tried setting up my own.

What Sets My Setup Apart?

Unlike many "setting up Obsidian blog tutorials", including Network Chuck's, I didn’t start from scratch. My blog needed to integrate seamlessly with an already deployed website, requiring custom solutions rather than plug-and-play APIs or plugins. This additional complexity presented both challenges and opportunities.

Could this be the foundation for a SaaS product? Possibly :3

Key Features

  • Integration with an Existing Website
    My blog merges directly into my portfolio website rather than operating as a standalone site.
  • Customizable Themes and Aesthetics
    Fonts, headings, padding, and overall design are fully customizable to align with the site's branding.
  • Rich Content Support
    The blog accommodates images, drawings, and other media types seamlessly.
  • Minimum User Input I want the workflow of writing to deploying to be as frictionless as possible. Ofcourse I can

Infrastructure: Automation at Its Core

Here’s how the infrastructure is set up:

  1. Obsidian is connected to a GitHub repository called portfolio-blog.
  2. After finishing a blog post in Obsidian, I commit, sync, and push the changes to the repository.
  3. This triggers a GitHub Action, which sends a POST request webhook to my portfolio-website repository.
  4. The portfolio repository processes the webhook, verifies the changes, and deploys the updated blog to the production website.

With this setup, most of the workflow is automated, requiring minimal user intervention. GitHub Actions handle the heavy lifting, ensuring the process is smooth and efficient.

Blog image

Workflow: Writing and Publishing Made Simple

Thanks to this infrastructure, writing and publishing blog posts is a seamless process. Here’s how it works:

  1. Create a New File
    Start a new markdown file in Obsidian under the designated blog directory.
  2. Add Metadata
    Include the title, date, and tags for the blog post.
  3. Write the Content
    Draft the blog post with text, images, and drawings as needed.
  4. Push the Changes
    Commit, sync, and push the updates to GitHub via Obsidian.

The automated pipeline takes over from here, deploying the blog to the live website.

12/24/2024

#life#blog_init#paul_graham

Pilot

Going into 2025, one of my new year resolution is to become a better writer. Inspired by Paul Graham's essay on Write and Write Nots, I am challenging myself to become a better writer and thus a better thinker. I don't expect much traction from these blogs as these are just some notes to self, but if you are reading this, hopefully you might get some small nuggets of stories, knowledge, and inspiration.

Happy Christmas Eve!

Coding Wise

Setting up this blog was a hassle. It took me around 2 - 3 days of pure GPT + some background knowledge of Devops. I'll write a longer post explaining how and what I did to integrate note writing from obsidian to my current published website on vercel.

  • WIN CHENG'SPORTFOLIO
  • Lets Get in Touch!