July 12, 2025: Weekly Note 2025/04

  • I took a few interviews this week. One candidate was amazing and one was pretty good. A rare week with two good interviews! Interviewing is hard and I am becoming more and more sympathetic towards interviewers.
    • I grew up in North India. Compared to candidates from there, South Indian candidates almost never lie during interviews — with or without a straight face. I also find them to be better co-workers. There have been a few notable exceptions on both sides though.
  • I got a new color printer with ink tank this time. It is from Brother, which has pretty good Linux support. I downloaded script from their support page, ran it and it set up the printer without any fuss. Previous one was a HP with cartridges and refilling them was always a pain. Also, hplip is not always up to date. It is nice to take a printout of an important document such as resume and read with attention they deserve. Many candidates spent days on them!
  • I was looking for a general database migration tool for PHP. Found Phinx and quite like it. Codeigniter inbuilt database migration wasn’t usable because I moved my project from FastAPI and earlier migration were handled by https://github.com/sqlalchemy/alembic. If you don’t setup your database with CI4, it’s not easy to use it for migrations!
    • No matter how well you plan your database, there will always be need for migration since business requirements keeps changing. Alembic is great if you are in Python world!
    • I totally understand if someone get the temptation of using No-SQL in the beginning of a project and later continued with it!
  • I finished a few courses at Coursera. Most of them are related to “soft skills”. You don’t have to spend hours doing assignments in these courses.
    With that little time investment, I got a lot of insightful tips and knowledge. Do not discount “easy courses”. Many things sound easy once there are told and this fact should not reduce their value. I wouldn’t even think of these titbits and tips otherwise.
  • We went out for dinner last night. It was for Anzal’s farewell (at https://maps.app.goo.gl/uun78ux8QCDEnKKS9.). A dog friendly place, they have food for them on the menu. But Kaalu was spooked by a giant rat in bushes and spend most of her time on high-alert. She definitely did not enjoy it. Ookie, on the other hand, had a good time.
  • Kaalu The Fifth limping has gotten a little better. Fish oil and omega fatty acids are helping, and it looks like she is having https://www.petmd.com/dog/conditions/musculoskeletal/osteoarthritis-in-dogs
  • I read a few interesting articles
  • I am active on LinkedIn again. I deleted my LinkedIn profile twice, more recently last January. Perhaps third time a charm?!

July 5, 2025: Weekly Note 2025/03

  • I finally finished a version EHR app that I had been developing for last 6 months. I expected it to be over in 2 to 3 months — along with a real time trainer app. I had to rewrite it in PHP as a monolith from Vue3/FastAPI (frontend/backend). I discussed some of mistakes I made in . Moreover, I should have spent a significant more time on planning and talking to stakeholder, a kind of discovery phase where I force ideas out of people and put them into tickets. Another lesson learnt is that don’t take “another developer joining soon” too seriously. Despite what I write in my resume, I consider this project a professional failure in planning and execution!
  • This failure lead me to https://www.coursera.org/specializations/real-world-engineering-management. I am taking this short course and enjoying it. I’ve already learnt a lot from it. A few speakers are accomplished IC turned manager. I liked a couple of soundbites from it
    1. Product manager is a advocate for customers.
    2. Engineering manager advocates for, well, engineers.
  • Working at this other startup made me notice a few things — how small small things adds up to make a huge difference. I notice them because I have something to compare against from my previous startup. Many founders perhaps don’t recognize them because they have nothing to compare against. Perhaps everyone should work at a startup (successful one, if you are lucky) before starting their own? Or at least get someone from a friendly startup as resident observer for a while?
  • I have been thinking about 247df64abb1a495fb464959900c07b42 -- A reddit user (c-digs) comment on scalable systems
    I’d love to discuss some of these ideas with some candidates in their final round of interviews — if I get the chance.
  • There are some exciting changes coming to PHP-8.5 (https://php.watch/versions/8.5). Especially |> and functions to get first and last element of an array!
  • Kaalu The Fifth was limping last night. I sensed some pain when she was climbing sofa. She is overweight — she likes to eat outside and neighbors are really love her! I ordered fish-oil and a few supplements for her joints.
  • I rewrote my resume using LaTeX (again!). I was dreading installing the whole TexLive just to compile one page of resume, but thanks to The Tectonic Typesetting System — The Tectonic Typesetting System, the UX is much better.
  • Loved the podcast https://se-radio.net/2025/06/se-radio-671-carson-gross-on-htmx/.
  • Running 20 km this week looks like a challenge — one more day is left and 7 more km to run.

June 22, 2025: Weekly Notes 2025/01

I guess, from now on, I am writing weekly notes every weekend. I learnt about weekly notes from Thej many years ago.

Currently, I am at a early stage startup. I joined them early this year after quitting my startup Subconscious Compute (more on it some other day). I’ve been building them an EHR platform to collect responses and related APIs though I was hired to do something totally different. First, a summary of what I’ve been doing here.

I started with Vue3 and fastapi and learnt Typescript along the way. It started off well. I managed to launch a demo version in a month. Most of its users are not technical and this was the first time I built a web-system for non-developers. And quickly realized why there is so much fuss about designing UI for non-tech users.

  • If you are a solo developer or a very small team, DO NOT split your frontend and backend — it creates more than 2x work. For a non-technical leadership (which might think they understand tech), it is a simple ask for adding or changing something trivial at UI, but for you it is migrating your schema, APIs and frontend models. And what is worse, you will make mistakes. You should only change things in one place. DRY and ensuring Single Source of Truth (SSoT).
  • So I bit the bullet and rewrote it in PHP8 & Codeigniter4. DX is now much better. First, I don’t have to switch between Python and Typescript/Javascript. Second, the system now crashes if someone submit invalid value rather than accepting wrong/empty values. The database schema validates the value. Perhaps I’ll add validator in the form/UI using </> htmx – high power tools for html.

This week

  • I explored a few server side qr code scanners. The most commonly used one is mchehab/zbar which doesn’t work well when image is tilted or rotated. Another tool rxing-core/rxing: cRustacean Crossing did a better job (it is in Rust). For example, in the following image, zbar detected no qr-code while rxing was able to detect two. Usually folks will do the qr code scanning using browser or camera at phone. There are some use cases where image needs to uploaded to server for QR scanning.

    IMG_20250618_185815 -- Sample QR Codes. This image contains 4 QR codes for testing various QR detection cli tools.

  • I wrote a Gitlab job to create backup of PostgreSQL server. It runs every 4 hours, uses pg_dump to create a dump, compress it and then Use curl to upload files to S3 bucket.

  • I found https://builtin.com/ on https://fosstodon.org/@ansate@social.coop/114707324371116735. It’s matches are pretty relevant. I’ve been updating my resume and thinking of reaching out to my network for opportunities.