The Invisible Work
Introduction
I have never denied that a major purpose of this blog was not only to educate the next generation, but also to jot down notes for a future, more forgetful version of myself - all while trying to generate a bit of passive income.
However, the reality is that the income is negligible compared to the sheer effort required.
- A single day of locum wages can easily match two years of AdSense revenue, yet each blog post takes hours of planning, drafting, and finalization.
- Because of this, I have established my own set of rules: I now prefer to update or refresh existing posts rather than constantly creating new ones.
A few days ago, a colleague asked me, "If it doesn't generate money, what keeps you writing new articles?"
- Well, not all efforts in life yield immediate financial results.
- One way or another, you just keep trying and hoping for the best.
- In fact, we tend to get addicted to the things we can control, like how quickly we can finish and publish a blog post.
Shift in Perspective: Spoon-Feeding vs. Active Learning
Compared to my most productive years - when I was churning out notes every few days - that visible output has slowed down to just a few posts a month.
- The reason is twofold: I have already covered much of what I am an expert in, and my mindset is shifting toward a higher level of philosophical thinking.
For example, as a member of my hospital's medication safety committee, I have started questioning our methods.
- It would be incredibly easy to just copy and paste the precautions and alerts I have gathered from years of experience into an AI chatbot, rather than implanting them on newcomers.
- Does passive, spoon-fed education actually work better than active, problem-solving exercises for junior pharmacists, or vice versa?
A preliminary trend I have noticed is that juniors often do not see the point when we ask them to list the different formulations and strengths of high-risk medications available in the hospital - such as gliclazide, tacrolimus, olanzapine, semaglutide, and carbamazepine.
- In fact, many of them do not even fully read the Look-Alike Sound-Alike (LASO) medication list compiled by the hospital pharmacy department.
- Otherwise, certain medication errors can be avoided.
- What we are witnessing now is history repeating itself every few years, just with different individuals.
Under the Hood: Vibe Coding
Nonetheless, I must admit I have been spending more time polishing my e-books over the past few months.
Another huge chunk of my time is dedicated to "vibe coding", to the extent that I am starting to feel more like a tech-oriented professional than a pure clinical pharmacist.
- Vibe coding has empowered me to build web applications that I previously only envisioned but could never actually bring to life.
- For example, I have written a medication profile generator (RxProfile) and a paediatric dosing calculator (RxPed).
- While these retro games are still available online, most modern hosting sites are cluttered and spammed with intrusive advertisements.
- While my versions might not perfectly match the exact mechanics and intricate details of the originals, they are closely inspired clones housed together in RxGame.
- It allows for progressive, iterative improvements to a project, letting coders visually experience the new capabilities they are bringing to life.
- I would not deny the joy of vibe coding, but I also fervently believe that restricting oneself to a single domain - like only writing pharmacy notes - should never be a boundary.
- I hope to achieve more on an individual level and contribute more to society through creating a larger Rx ecosystem.
- RxQuiz is naturally the next step in providing interactive pharmacy quizzes for pharmacists to test their knowledge.
- Other by-products include RxQuote, RxLunar, RxWealth, RxCalc, RxPixel and RxPDF.
The Grunt Work Behind the Data
Another major focus has been fixing and maintaining the PWA tools I have created, specifically RxLookup.
- Lately, I have spent countless hours consulting AI chatbots to figure out how to tighten its security architecture. To achieve this, I have implemented a stricter Content Security Policy (CSP), Subresource Integrity (SRI), comprehensive security headers, and strict permission policies, alongside updating dependencies and migrating to the latest Next.js version.
- Most recently, I completed a migration from Firebase App Hosting to Cloudflare Pages, deciding to fully convert the Next.js app to a static client-side output (output: 'export'). This migration and architectural shift were not accidental; it was a deliberate choice to cut my personal hosting expenses while continuing to offer free solutions to the public.
- The sophisticated delta syncing mechanism in Firestore can become costly when scaling to a large public user base. Because RxLookup is heavily read-oriented, I decide to transition entirely to serving a static drugs.json file instead. Meanwhile, the Firestore delta sync utilized by RxBudget is strictly capped on the Firebase Spark Plan, ensuring it simply pauses operations rather than incurring charges if the free quota is exceeded.
From my perspective, creating a sustainable, secure, and offline-compatible drug database app is a long-term investment, assuming the app gains traction among practicing pharmacists in Malaysia.
- I refuse to put any user who trusts me at risk.
- To my readers who have supported me all along: Please clear your browsing history and site data, revisit the PWA links, and re-install them to your home screen to ensure you have these full security protections in place.
A friend of mine once joked that I must really enjoy building databases since I spend so much time editing data in Excel.
- Truthfully, it is not something I enjoy at all; it is a forceful necessity that demands hours of meticulous, draining work just to keep the platform viable.
- Each database update feels like a tiring, monotonous day wasted.
What many do not realize is that I make a strict monthly commitment to manually input newly registered drugs and medication brands in Malaysia - a tedious but vital task just to keep the database accurate and relevant.
The Migration to blog.myrxnote.com
Another recent visible change is that I have made the tough decision to migrate all current blog posts and pages from the previous www. subdomain to blog.myrxnote.com.
- Both the www and root domains will serve as a central hub showcasing all of my current website projects, including all the experimental PWA projects I have made available to the public.
- Plus, this migration is intended to create a cleaner and more direct architectural setup, preventing the endless redirect loops and canonical conflicts that are currently happening in Google Search Console.
- Finally, Google Search Console has now begun indexing a few URLs for the new domain.
If you find yourself missing the old-fashioned, simple Blogger layout, you can bookmark the new dedicated URL at https://blog.myrxnote.com.
Summary
There may not be many new blog posts being released right now, but behind the scenes, the work definitely continues.
- My personal stance remains clear: I welcome ideas, suggestions, and contributions from fellow pharmacists to help build a better ecosystem for fresh pharmacists.
Inevitably, I will need to pivot my primary focus back to my day-to-day profession as a clinical pharmacist.
- However, exploring tech and designing PWAs has been an incredibly intriguing journey.
- It feels a lot like solving a jigsaw puzzle - an ongoing, rewarding process of figuring things out piece by piece.
After all, it is a journey where no one knows the final destination.
- All that matters is not listening to the whistling of the wind, but doing what you believe in.
- There might be people who question your purpose or efforts, but you are the only one who truly knows.
Hi! I’m a big fan of your page. You’ve been doing such a wonderful job sharing your knowledge and educating us. I’ve learned so much from your posts, and I truly appreciate all the effort and dedication you put into sharing valuable information with us. May God bless you always. Thank you so much, and please continue educating and inspiring us with your wonderful content! ❤️
ReplyDeleteThank you for your hard work and great posts. Your clear writing and deep knowledge always help me learn new things. I appreciate the time you spend to share such useful advice with everyone.
ReplyDelete