Dyota Tanuwibawa

Jakarta-born, Perth raised, Australian citizen.

Former facilities engineer (oil and gas), current business systems analyst.

Hobbyist web developer.

Speaks Indonesian, Hokkien Chinese, English.

For a job, writes Power Apps, Power Query M, DAX, Excel formulas, PowerShell

For a hobby, also writes HTML/CSS, JavaScript (jQuery, Node.js/Express), SQL

Projects

Web Development

This website [GitHub] (2020)

Templated in Pug.js, styled with Bulma CSS. Hosted on GitHub Pages.

Wrestling WA Tournament manager (retired)[GitHub] (2020)

This project has two distinct but related parts: scoreboard, and tournament manager.

The scoreboard is composed of a countdown timer and a score counter for two players. There are two interactions with database: picking up names from fixtures to display on the scoreboard, and posting match results back to database upon match completion.

The tournament manager is mainly concerned with displaying fixtures. Using the tournament manager applicaton, the tournament organiser can copy and paste in fixtures from the Excel source into a text input field, and send the fixtures to the database. Users can scan a QR code, which allows them to view the fixtures.

This replaces a past workflow where fixtures needed to be formatted for print, have multiple copies printed out during the proceeding of the tournament, have the copies taken to the walls of the tournament hall, and participants would need to crowd around to check when their match is due.

Data work

PowerShell program to remap table attributes and split into multiple files (2024)

There was a need to remap the way people and projects were organised in the financial system, in advance of a company restructuring. People and projects were to be tagged according to the new structure. The new structure is not a one-to-one correspondence with the new structure, and the logic that drives the remapping is complex and cannot be simply done with a one-step XLOOKUP.

There were about 2,000 people to remap, and almost 6,000 projects. Through the process, the two full lists needed to be divided among around 7 different departments (that's one Excel file) with 3 to 6 different sub-departments in each (sheets in the Excel file), so that they can review.

Along the way, I needed to be flexible enough to accommodate changing information. The project scope would change, the shape of the deliverables would change, and new information would come in (for example, review responses).

Finally, there was a deadline of four weeks to nothing to a final submission, and I needed to do this as an extra assignment alongside my normal duties.

In order to do this, I built a series of PowerShell scripts (that toal in excess of 1,800+ lines of code) that fed on the main list, definitively remapped every item, took into account corrections, and split up the main list into different departments so that we can communicate to department heads. Along the way, I built in summarising functions so that project progress can be communicated upwards.

In doing this, the time to first draft was completed in four days, ahead of an expectation of 1.5 weeks, and including a full system rebuild on the second day. The final submission was met two days early, with all items remapped.

PowerShell script to download data from a web API for ingestion into Power BI (2021)

This was a workaround, to compensate for a web request from inside a Power BI dataset that failed to authorise in Power BI Service (further details are outlined here).

This was a PowerShell script that made use of Invoke-WebRequest to hit an API endpoint, download the JSON data, and save it into a file. The file is saved to a SharePoint location so that it is accessible to the Power BI report.

This was automated by creating a shortcut in the Startup folder in Windows. The target for the shortcut contains command-line commands to run the PowerShell script. Thus, the data is downloaded every time the computer is started up.

Count of number of times ships in a shipping channel travel across subsea pipeline, with angles of crossing (2021)

Point location data was given of ships (~1.4M points). Point locations were also given, that define the lay of a subsea pipeline. The task was to count how many times ships "cross" the pipeline, along with the angle of crossing (between 0 and 90 degrees).

After reducing the dataset, point location data were converted into vectors (comprised of two points each). For every kilometer of the pipeline, every ship vector was examined to see if it intersected that one-kilometer section.

The end deliverable was a summary table of counts, per kilometer section of pipeline, and a map that displayed the ship travel paths and the pipeline.

Everything was executed using only Microsoft Excel, primarily Power Query. Some Visual Basic for Excel was used to assist in formatting charts.

Real estate web scraper in Node.js and Excel Power Query (2020)

This is a compound tool, using Node.js in the command line and Excel. Upon executing, the JS script will hits a list of URLs on domain.com.au for the home open inspections happening in the next Saturday and Sunday, and list them (along with all the house attributes) in a .csv file.

The .csv file is then ingested into a Excel file through Power Query, where it is presented as a table.

  • Design of relational "database" structure for various Power Apps (2020-21)
  • Microsoft Power Platform

    Power Apps

    Built on SharePoint lists as database, aided by Power Automate. All were built within one Office365 tenant.

    2021
    Electronic business card with QR code to save contact details

    A phone-size, single-screen app that mimics the layout of the corporate business card, with a prominent QR code. Upon scanning the code with the camera of a smartphone, the phone will pick up all contact data (name, email, phone number, job title etc.) to be saved in the address book.

    QR code is a HTML textbox with a single <img> tag. The source is an API call to a third party API that converts strings into QR codes. The string passed in as a parameter is the contact details in the vCard protocol format.

    Corporate management of change form digitalisation

    A management of change process, used to recording administrative changes at a corporate level, had existed, and was carried out using documents in .docx and .xlsx. Description were filled out in .docx, and outcomes of risk workshops were tabulated in .xlsx. Users needed to consult the company procedure or refer to the global QHSE manager for guidance. The management of the process itself was done through an Excel sheet (recording titles, unique ID numbers to MOCs, etc. )

    This app was a digital manifestation of the same process. Numbering to new MOCs was automatically assigned, and registering of MOC register was kept up to date automatically. Practical usage of the tool was guided through on-screen prompts, and the user journey through the process was guided by the application logic itself.

    "Amazing Race" companion mobile app with QR code scanner

    Companion app to an "Amazing Race" style of game, for an office teambuilding afternoon. Participating teams race on foot from one location to another. At each location, they must complete a challenge. Upon clearing a challenge, the team is given a QR code that they scan to receive a clue for the next location.

    The app also facilitates photo-taking at intervals. All photos are sent to a central SharePoint location, where it is available for all participants to view after the event.

    Building visitor/employee sign-in tablet app

    App to allow visitors to sign themselves in on a tablet at reception and notify their host of their arrival.

    Built to replace a third-party system.

    2020
    QHSE site dropped objects inspection tablet app

    Tablet app that can be taken by an operator on an offshore vessel or plant facility to perform dropped objects inspections.

    Inspection scope can be loaded. Each line item in the inspection can be marked off, have comments added to it, and have a photo attached to it.

    App sequencing optimised for use outside of internet range.

    Traditional "tabular" export of results in HTML also created, to replicate historical report formats.

    Accompanied by a Power BI report for managerial oversight on inspection results and actions.

    Startup required extensive Power Query manipulation to import existing data into the format required by new system.

    Mentor-mentee matcher

    "Tinder for mentoring."

    Enter app to sign up, either as a prospective mentor or prospective mentee. Once signed up, view profiles of other members who have signed up. If seeking a mentor, the app allows for requesting mentorship.

    Once relationship is established, there are facilities for capturing objectives and to take notes for meeting

    Document review and approval by multiple reviewers in sequence

    Power Apps translation of an existing form in InfoPath. App facilitates the entry of a single form by multiple contributors, with multiple stage gates, and revision control.

    App user base is divided into four distinct "roles". The form interface is different depending on which "role" is viewing.

    App allow for form entry, edit, and displaying what stage the form is up to.

    Business case proforma

    Web-based app as a pro forma for writing business cases to aid in corporate-level decision-making. The pro forma includes a questionnaire, where every answer is given a score. Every business case results in an aggregated "benefit score" and "effort score".

    All business cases are stored in a repository, and comparisons can be made of the scores of multiple proposed business cases.

    Global "noticeboard" for seeking/offering engineering hours across offices (2020)

    This is a platform for two things: offering engineering personnel who aren't currently occupied not on project, and also for seeking engineering assistance when there is a shortfall.

    For a global company with offices in multiple global regions, this platform helps in the situation where engineers have been freed up from projects but there is no work locally, and also the situation where a project's engineering effort requirements cannot be satisfied with the available resources within the local office.

    Upon "posting" a seeking/offering notice on the platform for a particular skillset/department, a pre-formatted email is sent to selected representative of that skillset/department around the world.

    Responses and follow ups are conducted outside of the platform via email.

    2019
    Site/office QHSE walkaround mobile app

    Mobile app designed for hand-held devices, for use during a leadership or management visit to an office or site, focussing on QHSE. This app replaces a paper checklist.

    Mobile app designed for hand-held devices, for use during a leadership or management visit to an office or site, focussing on QHSE. This app replaces a paper checklist.

    The questionnaire is filled out on the mobile device. Photos can be taken and appended to each question. At the end of the questionnaire, the results are pre-filled into PDF document which is sent to the QSHE administrator.

    The PDF document is in the same layout as the paper checklist previously in use.

    Company bookmarks index

    An app to centrally house commonly used web links and software within the company. Other "official" methods were cumbersome and difficult to nevigate, and finding both engineering tools and corporate tools were not easy.

    This app looks through a SharePoint list and uses a search box to quickly find the software of interest. The search box not only searches through the software title but also description body text also.

    The source data in the SharePoint list is manually compiled.

    There is facility in the app to allow users to submit their own pages.

    Ideas management system (2019)

    Digital suggestion box to allow staff to enter innovative ideas to improve work. Ideas are actually work items that will be conducted using overhead hours.

    Includes workflow for approvals, to request for budget hours.

    Power BI

    • Weekly reporting, and integrated data model (2023-2024)

      With a Power BI data model set up, I was able tobring forward the update day to Monday close-of-business. I was able to take advantage of filtering in the report view to do away with multiple downloads and reports, all of the processing steps were codified into Power Query, and distribution is done via a static link to Power BI.

      Weekly reporting is expected early in the week. Source data needs to be downloaded from reporting system and composed into a report manually in Excel. Due to limitations of processing in Excel, time is also taken up downloading large reports to enable the correct lookups. The processing time is also compounded by having to work with four different files. The report is usually received via email by leadership on Wednesday or Thursday, and does not leave enough time to course-correct.

      Using Power BI also comes with the advantage of being able to correct things in the past (without redownloading reports), make persistent corrections, on top of the clear visual advantage of the Power BI report view.

    • Engineering project S curve (with companion Power App for update input) (2021)
    • News headline web scraper (targeting Google News and websites) (2020)

    Power Query in Excel

    Reconstruct "chain of command" in organisational hierarchy (2022)

    Source data is a table, where every row contains an employee and their direct line manager.

    This solution creates a table where, starting with the target employee, each succeeding row is the manager of the previous row. This effectively results in a linear "chain of command", going all the way to the top of the organisation (where the top person has nobody else to report to.)

    Details on how this was executed is outlined [here](https://dyota257.bearblog.dev/chain-of-command/)

    Task list roll-up (2022)

    The desired outcome was thus: each member of our team was to have an Excel spreadsheet that contained all of the projects we were working on. Each project had a number of subtasks.

    Our manager was to have a spreadsheet of the same format, expect, instead of projects, her spreadsheet would be divided into people (her direct reports), and instead of tasks, it would be our respective projects.

    This was all executed using Power Query. We (as her direct reports) would fill out our task lists. Our manager would press Ctrl+Alt+F5 on her spreadsheet (or click Refresh) and all of our tasks would be updated on hers.

    • Conversion of tabulated inspection reports in PDF (100+ pages) to a single Excel table (2020)

    Contact me

    ✉️ dyota257@hotmail.com

    🖥️ GitHub

    📓 My blog