I used moonrepo’s proto for 3 months. It’s a solid tool—fast, written in Rust, supports multiple languages through a pluggable WASM architecture. On paper, it checks all the boxes for a modern version manager. But I switched to mise this month. The reason? Something stupidly simple: I could never remember how to activate a specific Node.js version in proto. Every single time, I’d…
Quite recently, I have had the pleasure (sarcasm intended) of witnessing colleagues with strong personalities clashing, each response doubling down with their side of the story. One thing that I did notice is that on each response, their vision seemed to narrow down greatly, which can be dangerous when trying to reach a consensus. However, being the observer at this moment reminded me about the…
I stumbled upon this nifty invoice project , which is also available in homebrew: brew install invoice . Usage is as simple as: invoice generate --from "Dream, Inc." --to "Imagine, Inc." \ --item "Rubber Duck" --quantity 2 --rate 25 \ --tax 0.13 --discount 0.15 \ --note "For debugging purposes." I can even use a config file which would be a lot easier to maintain: invoice generate --import…
Almost a year ago, I joined Security Bank as a principal engineer. Now, that job opportunity came with some trade-offs, one of which is that I need to go to the office every now and then. This meant that I won’t be able to drive my wife and kids to school whenever I’m at the office. So, I’m really glad that one of the benefits that I was entitled to was getting a car paid by the…
Our requirement was a real “Partner Mode,” where the piano splits into two sections with the same key range. The most affordable option from a reputable brand was the Korg B2. The cheapest we could find from a reputable brand was Korg’s B2. We got this pretty KORG B2SP for a discount Buying in their physical store is ₱2,000–₱3,000 cheaper than the price listed on their website. It’s a good…
I recently joined a workshop + hackathon event held in Microsoft’s Philippines office, centered around on using Azure’s hosted Open AI GenAI capabilities. I know, it sounded like a mish-mash of words, but that’s exactly how it was described XD. Initially, I joined to set an example for the rest of the team to participate in the hackathon, but unfortunately, it turned out to be…
It’s been over two years since I joined Inspectorio . I started as an individual contributor, but I was thrust into a leadership role right after my first month. It has been an interesting journey, and, much like my time with XSplit , I would attribute a great deal of my professional growth to this experience. Over a month ago, I handed in my resignation letter, and I’m rendering my…
Source code: Github Since it was the end of the month, and I failed to record the expenses as we made them, I had to encode all of those data from apps like Grab to a spreadsheet for our family’s budget tracking. But considering that I dislike repetitive work, I decided to create a tool for it. This time, I used Go to create the CLI tool just because I’m learning in the context of web…
Context There was one recent meeting where when I mentioned about the rush to deliver caused the quality of our work to decrease, it was met with negativity, painting the notion that I mentioned it to just make an excuse as to why we ended up with lower quality work. I generally kept it to myself, as I honestly didn’t fully understand why mentioning that fact warranted such a negative…
Summary ChatGPT ships fast, but it obviously isn’t the first company that did that. I remember Facebook popularized “Break things, Move fast”. One key takeaway here, I guess, is how this can be an antithesis of the remote work movement. Although I’ve been a remote engineer since 2018, ever since my former boss Mike Leach sold “remote-first” work environments to…
Summary What made me read this book was when I stumbled upon a talk by Dan North about effective teams, and this is also one of the key ideas that stuck with me by the end of the book: Dreyfus Model of Skill Acquisition. Gist of it: There are 5 stages: novice, advanced beginner, competent, proficient, and expert. At each stage, your approach to learning and problem-solving changes. For example,…
Summary The post itself has some interesting points to consider. However, I do not fully agree with the point that developers want to learn new technologies just because that is valued more than working on the core business logic. I observe that organizations do value people who work on core business logic more than people who know the latest and greatest. It’s more of a case that sticking…
Background The project I am involved in at Inspectorio had a pretty standard process, where each merge request would run unit tests before we could merge it. flowchart LR A(Push changes to feature branch) --> B(Run CI pipeline) B --> C(Merge changes) The Problem Our issue is that our pipelines take almost an hour , and the main culprit is our unit tests. On the positive side, this meant that we do…
This post was a long time coming, I just stumbled upon this one in one of my Zettels. On one of the olden projects that I used to be part of, we had an issue that an API endpoint that joined multiple collections together was taking seconds to respond. The Problem We had an API endpoint that would list down a folder ’s contents. The folder can contain items from three different collections,…
I was recently offered a position as “Head of Software Development”, which is directly under “VP of Engineering”, but I turned it down. The reason turned out to be because of my risk appetite. The offer was for a brand new startup based in the US that has yet to dip its toes into the market, testing the waters for its product market fit. Unfortunately, with the current…
I recently encountered a problem where I had to optimize a function that handles an array size of more than 10k items. The goal of the function was just to determine if the items in the multidimensional array are all empty . Here’s what the array looks like: [ [ { some : "" , unique : "" , key : "" , value : "" , pair : "" } ], ... rest ] The original function had a logic similar to this:…
I started working with Fujitsu Ten in October something, 2010. I don’t remember the exact date anymore. I remember it was Ate Shi that informed me about the job opening. I was ecstatic as it was (or is ) a known electronics company. The industry was embedded software for automotive electronics, and here’s where I learned about the actual practical usage of pointers in C. Here’s where I also saw…
I am currently using GCS for the images in my blog, and I usually never resized images before uploading them to the bucket. I always thought that everything would be handled for me once I upload images to the bucket, thinking that there was already a built-in CDN on top of GCS. This resulted in a couple of my blog posts loading large images that take quite some time to fully load.
I came across a friend’s blog again, after I saw some FB posts about illustrations, which prompted me to search for him to see what’s his latest works are on the internet as he deactivated his social media account. In any case, I stumbled across his blog, and got troubled with a couple of his blog posts (posted almost a year ago), and I really wish that everything goes well on his end.
It’s been over a month since we got our Mazda CX-9 Turbo Exclusive. It wasn’t my first choice, as I was gunning for a Ford SUV at first, but because of how the agent I was in contact with handled the transaction, we ended up going for a Mazda, and I’m glad that we did. Side note: I very much dislike Ford Cainta as they are prioritizing customers that went for an in-house financing…
I distinctly remember that during the trip, I quickly did some doodles for the blog post about how we met on the last night of our trip. The overall trip was great. But rather than going chronologically, I’ll break it down by category instead. The flight One lesson learned is that if you got a 2-year-old, it’s best not to get the kid their seat… My 2-year-old didn’t sit on her seat. Also, going…
In exactly 3 weeks we would be celebrating our 6th anniversary, and after three months from that, we would mark our first decade as a couple. It’s prime time to reminisce about how we met in a classic Taglish manner. The Encounter For starters, we both worked at the same company, with me joining Fujitsu a year earlier than AC. Actually, one year kami hindi nagkakilala even though we both…
I’ve been a long-time CleanShot user turned CleanShot Cloud user, but recently, I’ve been trying to clamp down on my online subscriptions. With that, I’m trying to look for alternatives to the current tools I use, although it does not need to be a free alternative. I’m aiming to cut down the monthly costs, so I’m just fine with software that would charge for a…
Recently, I read the book A Philosophy of Software Design , and one of the key points that stuck with me is Consistency . I read the book at the right time as the company I’m working for was recently acquired. And one of the usual ceremonies during such transitions is the merging of teams, either merging whole teams or moving people around to different teams. It means that we must discuss…
Tax. As an employee, di mo yan matatakasan. But as an independent contractor, ala non-licensed professional, consultant, freelancer, yada yada, madaling takasan ang tax. Wag ka lang mag bayad, wag magarbo ang buhay, wag mansyon ang bahay, wag magyabang, maging mabaet sa kapwa, at ma e-evade mo yang tax na yan. Pag ginawa mo yun, ha, isa kang masamang tao. Since I pride myself as the most…
There was this one project that I was involved in that never deleted merged branches. Not only was rebasing to latest branch not the norm in this project, but so was squashing, thus there are a lot of commits littered all over the repository. I’m not that opinionated on this matter though, as it falls into one of those “I have a preference, but I won’t force it on other’s projects” , where…
While working on XJS 3, I had to frequently parse the XML strings that the XBC core is sending to me, and then create an interface for TS so that tslint would stop complaining my use of any. With that, I created a tool to automatically generate the interfaces for me, along with a JSON output just so that I can inspect how the XML would look like when parsed.
So I made a tool and I thought of blogging about it. Background I recently left SplitmediaLabs , and now I’m working remotely as a Senior Software Developer/Engineer for a consultancy (aside: contract says that I’m a Senior Software Engineer, but my company ID states that I’m a Senior Software “Developer”. Minor stuff, it’s just that I hate inconsistencies).…
For the past few weeks, I was looking for a new compiled language that I can make use of for my tools as I grew tired of Go language’s verbosity. I tried learning Rust, but as I expected, it was more suited for system projects, and found out how much pain it could be for smaller tools due to how strict the compiler is. With that, I eyed for both Nim and Crystal language, with the latter…
I’ve been working for SplitmediaLabs for the past 4 years. To be honest, I always thought that I would stick with SplitmediaLabs for longer than my previous work, possibly till I am too old to work, as this company was the best company I had ever worked for. But alas, times had changed, and my current situation made another offer look a lot more attractive that I decided to take a leap of…
Yesterday, I had the priviledge to give a talk at FEU Institute of Technology about using web technologies to create desktop applications. For the past few years, I’ve been working on a desktop application wherein the UI component is basically a browser. The experiences I accumulated with this project made me want to share my rants and lessons learned while leading the project, which I then…
EQCSS allows us to style elements based on the element’s state. It is similar to CSS’ media queries, but with the added feature to style elements based on the element’s dimension and contents, and not just based on the browser’s width and height. This got me interested since my previous project’s longstanding issue was with how the app should look like based on a…
To be honest, I am writing this blog post way past my actual wedding day, and through the power of editing the post date … the blog post will appear as if I published this post at the day of my wedding :D This is obviously a big milestone for us, and the fact that I now have somebody to travel with me on this journey of uncertainties makes things a little settling.
rmrz , as in RaMiReZ. We bought this domain name to host our family’s portal of sorts. We wanted to make our house a tad bit smarter DIY style and have access to our smart appliances over the internet. Yeah, it’s a bad idea, it’s like inviting bad actors to a flimsy door that they can break in and ruin your house. So now, this site is a simple blog, and hosts some personal tools…
In my quest to continuously learn, here’s a nice list to flex what I was able to finish, not necessarily to the point that I can call myself as an expert to whatever subject matter the book or course covered :P. Career-related books Hopefully all books I read is in goodreads too, so that I can simply rely on the widget below to show what I’m currently reading. Currently Reading tagged:…
Here’s a list of equipments and tools that I use for work and personal work-like hobbies. Devices 14" MacBook Pro M3 (Work, company provided). 14" MacBook Pro M1 Max (Personal, experiments, personal projects). Lenovo Q24H-10 23.8" Monitor. Magic Keyboard. Magic Mouse. Sony WH-1000XM5. iPad Mini. Editor Neovim. Terminal Ghostty . Zellij . I use Fish as my command line shell. There has been…