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


I built Julie a Contract Maker

Every time Julie create contracts for her clients, she always complains. It’s one of the things she isn’t looking forward to do in her business. She have this Adobe Illustrator file she manually edits for every client. Even computation itself is manual work.

Her process looks like:

  1. Look for her laptop
  2. Look for laptop’s charger because it’s been a few days before she last used it 😄
  3. Open her Adobe Illustrator file
  4. Dig in client details. Is it in Facebook Messenger, Viber, email?
  5. Add client details
  6. Add payment terms
  7. Save to Dropbox
  8. Send to client for signing

All this takes her around 10-15 minutes per contract. At the end of it sumasakit daw ulo niya.

At one point I told her I make her a “contract maker” for her phone. She will only have to put in client details, then it will produce a PDF based on her AI template.

This video is our initial MVP (minimum viable product).

This removed half the steps of her current process. This also removed the need to have her laptop around to create contracts. Less friction to do as soon as her clients paid the down payment, with all the wedding details still fresh from their conversation. Computation and breakdown of payment terms are done automatically.

She tried it on an actual client who followed up her contract. It took her less than 5 minutes to do. Most of all, she doesn’t get headache doing it anymore. 🙂

Making a Personal Dashboard

I have been out of track for a while now. Julie is starting to get worried that I’m getting a little too present-oriented (YOLO lyf).

I think the problem starts when I stop checking in life metrics that directly correlates to my “sharpness”. Having no idea of how am I doing makes me care less of my performance. Resistance to know grows because I might not like what I find haha.

Somebody said that if you can’t track it, you can’t improve it.

What do I need to track?

I have 2 key performance indicator (KPI) that’s correlated with my work capacity and ability to plan about the future.

1. Screen Time – How much time I spend using a computer. This is tracked by running RescueTime that’s running in background of my computer all the time.

2. Intentional Work Time – How much time I spend intentionally working on something. “Intention” is the keyword. Regardless of how much I time I spend on a task, the important thing is if I am aiming at a clear end goal. Opposite of this is jumping from one distraction to the next without accomplishing anything concrete.

This is tracked by Toggl. The way it works is before I start using my computer, I have to put a short description of what I’m about to do and explicitly start Toggl’s timer.

Normally, I should have more or less 40 hours of screen time per week and around 20 hours of intentional work time. If I dip below 40 hours of screen time, it usually means I’m trying to avoid working by doing something else.

When I’m at my sharpest, I am more self-aware, this makes most of what I do to have clear intentions before I do them. The closer intentional work time to screen time, the better.

Out of sight, out of mind. The opposite is true too.

I need those 2 KPIs to be always in my sight. This will give me a general grasp of how I’m doing based on a concrete data. I can do my “getting back on track” checklist if I’m doing poorly.

I have the skillset to quickly whip up a simple dashboard that displays those data. I also have a spare tablet that I’m not using. I can use it to display my KPIs on 24/7 with very little power consumption (5V/1A).

Getting my hands dirty

1. Preps

I did not bother using any framework. It doesn’t matter how dirty the setup and the coding is since it’s personal use only. The goal is to display the correct data.

Originally I planned to use curl fetch the data but it looks like using API wrappers will be much faster and future-proof. I always went to the fastest solution because I want to have a working dashboard in one sitting.

I started 2 files: index.php for the gluing all the parts and composer.json for dependency management.


2. Getting RescueTime data

For RescueTime, I used borivojevic/rescuetime.

$rescuetime_key = "RESCUE_TIME_API_KEY";

use RescueTime\RequestQueryParameters as Params;
use RescueTime\Client;

$client = new Client($rescuetime_key);

$day = date('w');
$week_start = date('Y-m-d', strtotime('-'.$day.' days'));
$week_end = date('Y-m-d', strtotime('+'.(6-$day).' days'));

// Fetch activities for this week
$activities = $client->getActivities(
  new Params([
    'perspective' => 'interval',
    'resolution_time' => 'week',
    'restrict_begin' => new \DateTime($week_start),
    'restrict_end' => new \DateTime($week_end)
// Compute total time spent
$totalTimeSpent = 0;
foreach ($activities as $a) {
  $totalTimeSpent += $a->getTimeSpentSeconds();

$totalScreenTimeThisWeek = number_format(round($totalTimeSpent/60/60, 2), 2);


3. Getting Toggl data

For Toggl, I used ixudra/toggl.

$workspaceId = 0;
$apiToken = 'TOGGL_API_KEY';
$togglService = new \Ixudra\Toggl\TogglService( $workspaceId, $apiToken );

$response = $togglService->summaryThisWeek();

$totalIntentionalWorkThisWeek = number_format(round($response->total_grand/1000/60/60, 2), 2);


4. Displaying computed data to the page

    <p>Screen Time</p>
    <h1><?php echo $totalScreenTimeThisWeek; ?></h1>

    <p>Intentional Work</p>
    <h1><?php echo $totalIntentionalWorkThisWeek; ?></h1>


5. Keeping the data up-to-date

<!-- Refresh page every 10 minutes -->
<meta http-equiv="refresh" content="600" >

Putting everything together

I end up having a working dashboard in around 1.5h of intentional work. After the coding is done, I uploaded it to my server and load it in the tablet.

It sits on a shelve where I can see it everyday (together with The Daily Stoic, which I read 1 page everyday).

This sets a framework that I can update as needed if ever I need a new KPI to track. The process of adding a new data source will be just 1) figuring out how to get the data 2) displaying it. The boilerplate is done. The friction to update will be minimal.

If you are interested in this project, have a KPI to recommend, or just want to talk in general — feel free to reach out!

Monday Weekly Reviews

I figured that Monday is the perfect time to review my week. I have a fresh outlook and high energy because of the weekend break. I always try to follow this one important rule: Don’t end the week with nothing. If I get to accomplish a single important thing every week, I consider it a big win. What are my wins this week? What needs improvement?

Another important part of my reviews is to plan my upcoming week. What do I need to look out for? What do I want to accomplish?

Reviews easily takes 1-2 hours to do. Despite the hours it takes, I see it as worth the time because it helps me realign whatever am I doing now to the big picture I want to be in. It helps me see if I am at the right direction or am I straying away.

Right questions helps me focus on the right things. Currently, the questions I ask myself during reviews are:

  • How was your week?
  • What are you proud of this week?
  • What needs improvement?
  • Do not end the week with nothing. What’s the single most important thing you need to accomplish next week?
  • What’s upcoming this week? What do I need to look out for?
  • What else do you plan to accomplish next week?

On reading books

Read one book at a time.

While reading, highlight and take notes ideas that come up to your mind.

At the end of the book meticulously edit your notes to make each idea self-contained for future lookup.

Add the self-contained idea to your Anki flash cards.

Move on to the next book after you have finished editing your notes and published it.

Shelve your book and you can move on to the next.


What should I read next?

  1. Area I want to improve on, inline with my stretch goals – check learning path mindmap
  2. Something that induce a terrifying longing. Making me drop everything else to pursue it.

Getting better at vim will give me nothing. It will not get me closer to any goal I have now.

So this is my simple observation: When deciding to embrace a self-motivated ambition, choose a definition of success that your aunt in Peoria would understand and find impressive. This is not about succumbing to the status quo, but instead setting yourself up to receive the brutal but useful feedback needed to eventually start producing things too good to be ignored. – Pursue Metrics that Matter, Cal Newport

I’ve been thinking of making my workflow vim-centric again, just because.

Then this got me thinking:

Getting better at vim will give me nothing. It will not get me closer to any goal I have now.

PhpStorm works perfectly fine. It’s heavy, yeah. But so what? My machine can handle it pretty good.

Ewan ko ba bakit na attract ako sa idea na of “get better” at vim. It does not provide value. What I mean is, the effort I will put in it does not convert to something of valuable.

Pursue metrics that matter. Getting better at vim does not matter. Getting better at coding does. Better yet, getting better at achieving goals that improves my life is the thing that truly matters.

Focus on getting better at creating things instead.


I enjoy understanding how other people code.

I’m not the type who bash at other programmers just because our “way” of thinking doesn’t align (most of the time).

Reading other’s people code and doing something about it is like stepping in someone else’s shoes. I asks all the why’s. Why did he do this, why did he do that. I try to think like the person who coded the thing.

Best practices are there for specific scenarios. There are no universal best practice. Early bird does not apply on going on a field of landmines.

The more “way” I know the better I get at choosing what’s the best for the situation.

This is why I’m getting paid by the premium. It’s because of the different “ways” I tried before and the lessons I learned from them and knowing which is the best for this specific situation.


Adjusting is normal, expected, and encouraged. It means you’re setting a plan, then adjusting that plan as new information arrives. — You Need a Budget: Rule One

This is from a budgeting methodology. However, this also applies to planning in general.

Things rarely go according to plan. But that doesn’t mean planning is useless. Planning gives you enough insight to know what to anticipate. What was planned isn’t absolute. It can and should be adjusted as events unfolds.

Am I focusing on the right things?

I’ve been reading @iamdevloper tweets. I’m surprised that I can relate to most of the stuff posted there. Just a reminder that what I’m experiencing is not unique to me. Somebody else has already gone through it.

I especially liked tweets that reminds me to question myself if I’m giving attention to the right things. I’m prone spend too much time looking for the best solution to things that may not add much value. In the end, time spent on it is disproportionate to gained value.

Every 100ms of latency costs Amazon 1% of profit, every 100ms of latency you save on your shitty web app cos-No one cares.

— I Am Devloper (@iamdevloper) May 27, 2015

“How My Users Cared When I Switched From Grunt to Gulp”Error: 404 (Not found)

— I Am Devloper (@iamdevloper) May 15, 2015

“I’m really glad that this person took the time and paid the money to set up their own personalised short URL system” – no-one ever.

— I Am Devloper (@iamdevloper) May 13, 2015

2020 © Jerico Aragon