Navigating Self

My attempt to have a writing habit. Writing forces me to have clarity with how I'm living my life.

ComputersFinancesSystems and ProcessesThoughtsUncategorized

Blog

What’s the worst thing that can happen?

Whenever I’m in a tough situation, it has become my habit to ask “what’s the worst thing that can happen?”

Let’s say I got delayed on a project. What’s the worst that can happen? I get fired. Then what? I will still be alive by then, I could find another job. I also know that I’ve minimized my risks enough that I could live the same lifestyle for a few months without any income. There isn’t really something to be anxious about.

I read that the fear we feel didn’t evolve as human’s circumstances improved. The fear we feel getting fired is irrationally similar to being in a life-and-death situation.

Fear’s primary purpose is to keep us from things that threatens our lives. If it’s something that can cause irreversible consequences (total disability, jail, death), sure it makes sense to be afraid. But if it’s not, fear just becomes a hindrance to think of solutions. So how do I lessen it?

Acknowledge the worst outcome

Explicitly acknowledging what’s the worst that can happen makes myself realize that hey I ain’t gonna die. I can move on to thinking how I can actually rectify my situation. A significant amount of mistakes can be corrected.

For a delayed project, most people just want to be updated. Sharing what’s the cause of the delay and how I plan to stay on track is a very good first step to do.

I don’t have control on how they will react. But regardless if they understood my situation or the worst actually happened, I’m prepared. The important thing is I was not paralyzed by fear, I started moving again.

Saving state to make it easier to resume work

I maintain and add/fix features to an eight-year-old codebase (web app). I like maintaining and keeping things running. My main challenge here is every time a new feature has to be implemented/fixed, I have a long list to do before I get to the actual work. Regardless on how simple it is.

To get started I need to:

  1. Open Visual Studio project
  2. Make sure I’m working on the latest version
  3. Start RavenDB (local database server)
  4. Start RabbitMQ (local message-broker)
  5. Start IIS (local web server)
  6. Open JIRA ticket for implementation details
  7. Finally, start working on the feature

This is only to get started. It doesn’t cover doing the actual work, testing, and deployment. There’s too much friction.

What I tried but didn’t fully resolved my issue

My initial solution was to use a dedicated laptop for web app-related work. This worked for a while but I didn’t like maintaining two laptops. If I forgot to charge the laptop, it shuts off leaving me to do those same thing all over again.

The second thing I tried was to run VM in Azure for development work. It has an image with Visual Studio pre-installed. I was able to ship a few features using this workflow. The lag was noticeable but every time I logged in, I resume where I left off. My issue is the cheapest VM costs around $20 a month (2 vCPU, 2gb ram, non-ssd storage). Build time is also considerably longer because of the specs, which becomes critical for hot fixes.

What I found to be working for me

I discovered cheap tiny PCs in FB Marketplace. Cost is only P10k for a fairly recent Intel i5 9th gen processor (6 cores). It idles at 10 watts (a full pc idles at 100w). I added 2x 16gb DDR4 ram and 1TB SSD. Total cost is only around 20k.

It sits in my lil homelab together with my other servers

I’m using it as an always-on headless machine that I access through Jump Desktop. Jump Desktop is a remote desktop app that has its own STUN servers. This means I can access the machine anywhere as long as there’s internet.

This solved my main pain point when working on this particular codebase. I’m also back on bringing only a single laptop with me if I go out.

My new process now:

  1. Open Jump Desktop
  2. Connect to the development machine
  3. Since everything is in place already, I only need to start working

This is me accessing the machine remotely from my Mom’s home (the machine is in my office). As soon as I connect, I resume where I left off. Visual Studio is open, local servers are running, build time is fast, and it doesn’t use too much electricity when idle.

Make fast decisions

I used to procrastinate making decisions because I fear making the wrong one. I preferred to keep things hanging until somebody else takes action. Even for the smallest things like where should we eat? It gets worse the bigger the decision needs to be made.

Something I admire with Julie and her family is they make decisions amazingly fast. Action takes place soon after. I wanted this pace, so I identified what keeps me from deciding and address it.

I adopted these mindset to prevent option paralysis.

1. A wrong decision is better than no decision

Indecision leads to more indecision. With indecision, I am neither moving forward or backward. It stops momentum.

Things moving are better than things in undecided state.

2. Have a default answer

When asked where to eat, I usually say McDo. I don’t mind if it gets rejected or an alternative is presented. It’s way better than kahit saan (anywhere).

It’s the same with starting with a blank canvas. Starting from scratch is harder than editing something existing (at least for me).

3. I can change my mind (pwede mag-bago ng isip)

Yes, changing minds come at a cost. But the information you get by actually trying things is worth the cost (usually).

If it turns out I made a wrong decision, I’ll acknowledge the fault and change my mind.

This is the same strategy with digital marketing. I can’t really know what ad will work until I try it out. I don’t know and have no control of how people will react. I need to try and find out. Stop the ads that isn’t performing, and double down on those that’s working.

The more information I get, the better decisions I can make.

4. Avoid deciding on things I don’t even have control of

Let’s say I liked a particular job ad. The question I should be deciding on isn’t “Should I apply or not?” (the answer is always yes).

The only time I should decide in this scenario is if I’m at a point where a job is offered. Because in that position, I’m the one in control if I should accept or reject the offer.

Applying to the job alone doesn’t particularly change anything in my life. I shouldn’t think too much about it.

5. Letting go is an option too

If you can’t let it go, face it. If you can’t face it, let it go.

I have to be explicit in acknowledging I’m letting this go to let myself know that I’m really letting it go.

#

These strategies has served me well. I make fast decisions now. I’m action-oriented. And I enjoy moving things forward (or backward as long as things are moving).

Extending UPS run time

Last week, we had a 4-hour power outage. Since all our networking equipment is plugged in a UPS, I assumed internet will be up for at least an hour. When I check the logs though, it was only around 15 minutes. This meant the UPS battery needs replacement.

Now, I have an obsession (lol) with uptime. When I searched for a replacement, I was also thinking if it’s possible to make UPS run time longer. It turns out that it’s possible by replacing it with a larger capacity battery. But there are safety precautions.

Safety precautions

Don’t use maximum load of the UPS

Replacing the battery with a larger capacity means that the UPS will run longer than it’s designed. There’s a risk of the inverter overheating if it’s running at high load for long periods.

To prevent this, make sure that connected devices is not using more than 80% of rated watts. My UPS is 300w. The devices connected are modem, router, PoE switch, and a low-power server for Omada Controller and PiHole. It totals only to 40-50 watts which is only 16% of my UPS rated watts.

I did a 2-hour test running on battery. There was no notable heating with the inverter.

Use the same wire gauge to extend connectors

Larger capacity battery also means it’s bigger. It would have to be outside the UPS casing. Using thin wires will introduce a risk of it heating up and might cause fire.

I didn’t understand how to compute what’s appropriate for this, I just used the same wire gauge as the connector inside the UPS (looked like 12 AWG).

Other than that, things should be fine.

The battery included with it was 12v 4.5Ah. I replaced it with 12v 25Ah (5x more than the original battery). This should provide 4-5 hour run time in case of power loss. I then cut a hole in the side of UPS casing to pass through the wire to the battery.

It’s already installed but we haven’t had a power outage yet to actually see how it will actually perform.

Why renting out a property makes sense

Newly built house for Johan

Growing up, I heard that investing in a real estate property and renting it out is a good investment. I didn’t understand why. Especially where the required capital is intimidatingly high, I couldn’t even imagine how to earn that much.

We’ve been incredibly blessed though. We got in a position where we can afford it. I also had a goal to purchase each of my kids a property while I still can. The idea is whatever happens to me, at the very least they’ll have a place of their own. But since they are still very young, we thought of trying to rent it out for the mean time.

We were able to purchase and rent-out our first property last year. That’s when it hit me why it was a good investment.

Investment options

When our savings started to grow, I started looking on where to put it. I knew that keeping it in a savings account will make its value slowly eaten by inflation (which is 2.64% last year). So I had this urgency to make it productive. These are the investment options I considered:

BDO Savings  (for comparison)0.125% (2021)
Retail Treasury Bonds2.375% (2021)
CIMB UpSave2.5% (2021)
Pag-ibig MP25.62% (2020)

Pag-ibig MP2 is most often recommended because it has a high interest rate and relatively safe. It’s interest rate last year was 5.62% and it has a maturity of 5 years.

For our rental property, we were able to rent it out at 1% of the total cost. That’s an annual gross of 12%. Setting aside 2% for tax and maintenance. It earns 10% yearly. Higher than other safe investment options I considered. At the same time, the property itself appreciates in value overtime (I have no idea how to compute real estate appreciation though).

To be concrete, let’s say the property costs 1,000,000. And we’re able to rent it out for 10,000/month, that’s 120,000/year. Then set aside 20,000 for tax and maintenance, that will result to 100,000 net income yearly.

This made sense to me.

I got scammed ₱15.9k in FB Marketplace

For the past few months I’ve been buying tiny PCs in FB Marketplace because I’m planning to create a homelab Kubernetes cluster for learning. I’ve purchased a lot in the marketplace before and everything went through. Most people are trustworthy. But of course, there are exceptions.

What was the scam?

The seller presented himself as company employee. I was told that they have a warehouse and a procedure of payment-first to process orders. This is a red flag in itself. However, when I checked the pick-up location, the company really do have a warehouse and it’s registered under the company name. This addressed my first concern.

The way the messages was structured was it addresses any hesitation that might come up. It looks like they really do have a standard procedure. I went ahead and transfer the amount agreed to.

And then he’s gone.

At first I felt my anger building up. Then shame slowly creeped in. I felt stupid for falling for it. My initial thought was to keep it to myself. Sharing it would only validate my stupidity.

I somewhat knew that if I kept things to myself, the bad experience will just linger at the back of my mind for days. Even if it’s embarrassing, I shared it to Julie and my friends.

What could I have done next time?

There are multiple ways to catch this con. It’s a little more hassle but for large transaction it’s worth it. Here’s the thing I should have done instead:

  • Call the company to verify person employment
  • Ask for an I.D. and live photo of the items
  • Most sellers offer payment only when the pickup service has arrived — insist on doing this
  • Avoid large transactions on Gcash/GrabPay because they specifically exclude swindling (transferred money but unfulfilled order) to their protection coverage

What good did come out of this?

I’m actually getting addicted on finding good deals in the marketplace. Even for things I don’t need. There’s this instant gratification in same-day shipping purchase. It’s getting harder to control myself especially when I’m stressed out and my willpower is spent. Now, I have natural aversion on buying. I don’t visit the marketplace any more haha.

Another thing that was surprising is how I was able to regulate my emotion. In less than an hour I was able to accept and acknowledge the situation. I knew that getting angry or feeling shame wouldn’t make a difference. It will only make my loss bigger (by being emotionally invested in something I don’t have control of). I was able to resume my day as planned.

This was good exercise on how I’d react when real bad things happen. I’d say this lesson is well worth ₱15.9k.

#

Here’s the details for SEO: Golden Dragon Enterprise 09334498092 09687683535

Implementing a Free WiFi

When fiber internet was rolled out at my Mom’s home, I had this itch to provide internet for the whole compound. She have an ice cream business and she provides housing to ice cream vendors (sorbetero) together with their families. Around half the compound are sorbeteros. Most of which will benefit if they don’t have to add another expense for internet.

Fiber made bandwidth cheap (P2699 for 100mbps). I knew that a 100mbps plan is more than enough for everyone there. The bottleneck is the device the comes with the internet plan. The device PLDT provides is actually an all-in-one that combines a modem, router, switch, and an access point (WiFi).

To increase coverage, I need to split out the access point and use a separate device.

Project goal

  • Share internet that covers the whole compound
  • Performance should be adequate for remote learning or work-from-home (Zoom, Google Meet)
  • Have the same experience as having their own WiFi
  • Roaming-capable (when people move, their device will automatically switch to the next nearest access point)
  • Minimal restrictions

Implementation

I opted to go with a business-grade solution. Big factor is a single dashboard to manage all access points. I was initially considering Ubiquity, but then found out about TP-Link Omada which is half the price.

  • I get notified through Omada app if the internet is down or if any of the access point stops working
  • There are only 2 SSIDs (WiFi name) for 7 access points. One personal and another for the free WiFi. Each has it’s own subnet.
  • Free WiFi’s subnet is limited to 50mbps to guarantee that the personal network always have bandwidth available
  • Each device is further limited to 20mbps (initially this was 10mbps but utilization rate was low, I bumped it up to 20mbps)
  • I had to block Mobile Legends because kids from other compound started coming to our compound to have a tournament until late night. Blocking is just another ACL rule to block port 30000 to 31000. ML stopped loading after this has been applied.

Interesting metrics

  • 7 access points covered more than 20 households
  • Average internet utilization is only around 20%
  • Average traffic is around 180GB download and 15GB upload daily
  • Max connected clients so far was 90+ devices
  • It’s been running since May 2021. Things has been relatively stable. Downtime was only when there’s no electricity.

Cost

Next step: better cable management
ItemUnit PriceQtyTotal
TP Link Router R509₱2,180.001₱2,180.00
TP Link 5-port PoE Switch₱1,440.001₱1,440.00
TP Link EAP110-Outdoor₱1,400.002₱2,800.00
TP Link EAP225-Outdoor₱2,900.004₱11,600.00
TP Link EAP235-Wall₱2,900.001₱2,900.00
Thinkcentre m73p₱2,500.001₱2,500.00
Omni plugs₱442.771₱442.77
Waterproof Junction₱580.231₱580.23
305m CAT6 outdoor cable₱2,250.001₱2,250.00
Total

₱24,443.00

I could have implement the whole thing 50% cheaper but it’ll be a pain to maintain and less fun to do. Since I’m doing this for free, I might as well enjoy haha.

Why

I see this as a hobby. I’ve always been fascinated with computer networking for as long as I can remember. 

The 25k I spent could’ve easily been another gadget where only I would benefit (and add another stuff to my life). Spending it on this instead accomplishes two things 1) I had fun planning, figuring things out, and setting it up 2) It has good net effect because a lot of people are getting value from it. And that makes me happy. 

I also learned a lot. I finally understood how VLAN works. It’s nice that I can map an SSID to a VLAN to have it’s own network. Power-over-Ethernet was also nice because there’s only one cable for power and data (CAT6).

Overall it was worthwhile.

High-availability Mobile Internet

My role at work is partly DevOps. This means that there are rare instances that even if I’m not at home (where internet is reliably available), I might get an alert where a server is not working as it should.

I have mobile data plan from Globe for that. Globe is usually good within cities. The more remote I get though, the less reliable it becomes. My initial solution was to get another phone and line from Smart (competitor).

However, I have minimalist tendency. Paying for two plans monthly feels wasteful. Especially during this pandemic where I barely use both.

I also didn’t like having two phones with me all the time.

Solution: Globe eSim + Smart Magic Sim

My primary network is Globe. I don’t mind paying monthly for this because it’s the same number I used for years. Good thing that they offer eSim which is supported by my phone.

The process was easy. Go to Globe store, ask for conversion from physical sim to eSim. They will then provide a QR code a phone can scan to register the number. That’s it. The eSim solution eliminated my need to carry two phones all the time because I can put in another sim to my phone.

For Smart, I recently found out that they are offering a new product called Magic Sim. It has non-expiring data at P399 for 24GB. Non-expiring! I only need to pay for it when I use it. I dropped the Smart plan I used to have which I was paying for P3500/monthly (easy to justify pre-pandemic) and replaced it with this one.

End result is I have a single phone with two sims from different network. I’m only paying monthly for my primary network. My phone auto-switches network depending on availability of internet.

#

I know this is borderline penny-pinching (which I try not to do). But I like keeping my personal lifestyle low-cost. I also enjoyed eliminating the waste I feel every time I do my budgeting.

Structure sets you free

I tried an unstructured life for a few months. No wake up time, no schedule, no commitment on deliverables. I was free to do anything I feel like doing. It seemed like the ideal state to be in, right?

I quickly realized though, this kind of lifestyle isn’t for me.

Day after day pass without anything meaningful happening. I had a list of things I wanted to do when I was super busy, but I have a lot of friction getting started.

My main issue turned out to be not having a structure.

I used to think being free means being able to do anything I want. It’s true. But what isn’t obvious is suddenly you have to decide on a lot things. Deciding on every single thing every day is mentally exhausting. “What am I going to do today? What time am I going to start? How much time should I spend on it?”

Pre-deciding is the key

A full-time job have a built-in structure. I wake up, take a shower, go to office. And in the office I have another set of routine to sit-down, identify what you need to do, do it until end of day.

This works because things are pre-decided for me. I didn’t have to think about it. I just have to follow it. That’s why it’s easier to do things.

I still don’t want the 9-5 lifestyle. It’s too rigid for me. What I end up copying is only pre-deciding on things. I start each week with a weekly planning where I check my calendar with upcoming commitments. I then list things I have to deliver within the week and arbitrarily put them any day depending on when it’s expected.

This significantly reduced the friction on how I start my day. Because it was pre-decided already. I just have to sit down and do it.

Structure sets me free in a way I don’t have to think of what I need to do everyday.

Blame it on me

Put me in a bad situation and I’ll find a way to blame it on myself. Be it lack of action, lack of insight, or lack of preparedness.

This isn’t some self-pity indulgence. It’s more of putting myself in a position where I could do something.

Imagine the alternative: blaming it on another person. What I’m doing here is just unloading an unwanted feeling to another person. How the other person will react is out of my control. Most likely, nothing is going to change.

Putting the blame on myself let me focus on things I could have done instead. Learn from it and apply it to similar situations moving forward.

Do this only if you have a healthy sense of self-awareness

Lately, I realized that this is only applicable if a person have a healthy sense of self-awareness. There’s a thin line between this and “everything is my fault” attitude.

The key difference is knowing deep down that any mistake is not tied to one’s being. Simply put even if I failed on certain things, I’m not a failure. That’s not how human works. I know that a single failure couldn’t possibly define my whole being.

With this mindset, I’m always forward looking. I see failures as learning opportunities. I don’t feel helpless.

Rather, the discomfort I feel blaming myself is similar to the discomfort I feel when lifting weights. Both increases my capacity. Mental capacity with the former, physical capacity with the latter.

2020 © Jerico Aragon