Photo by Nong Vang on Unsplash

I guess you could say it’s like debugging, but for people.

This essay is a reflection piece and contains only my opinions. I’m not speaking on behalf of the organisations I learnt this from or the companies I work(ed) for or anyone else associated with me ✌🏼

It was 2018 when I had my first brush with coaching and its associates. I didn’t know it as “coaching” back then when I unwittingly signed up for the workshop that introduced me to these concepts. The offer of the workshop was also its title and it was to “facilitate powerful conversations”, which seemed to address struggles I was facing when it came to…

Fancy working with your shell in a browser? Read on!

I swear it’s preTTY cool

Ever wished you could access some CLI tools over a browser instead of over the terminal? Well I did, and here’s how that wish went.

I use a tool called k9s (shoutout to Fernand Galiana for the awesome tool) to communicate with/debug a Kubernetes (k8s from here on) cluster. It’s a great dashboard for k8s clusters navigable using a curses-based interface (read: entirely with keyboard), and more importantly I could view collated logs from multiple pods from the same workload.

k9s also has a read-only mode and I wondered if I could expose this (imo) better k8s dashboard to other…

Photo by Ravi Roshan on Unsplash

This piece is based on my Quora answer to the question: What are 5 pieces of advice you would give to junior developer who wanted to level up quickly?

#1 Learn to say no respectfully and diplomatically

As developers, we’ll always be under pressure from above to deliver. While deliver we must, we need to be mindful of quality which is what leveling up as an engineer is all about. It’s better to know how to do things properly first and make an informed choice to forgo certain aspects, rather than not knowing what you’re forgoing for delivery.

It’s undeniably hard to say no to a higher up…

Credits: Photo by ThisisEngineering RAEng on Unsplash

The three levels of software design: organisational, business, and end-user

This is a piece based on this original Quora question/answer: How is the principle of software design used to produce high-quality software applications that meet the need of users?

Software design, like any other form of design necessarily involves stakeholders. And in terms of stakeholders, my opinion is that software design happens at three levels: the organisation, the business, and finally the end-user. These three levels can also be explained as: sustaining growth in capacity and agility of delivering value (organisational), delivering value (business), and finally value itself (end-user).

Each of these levels provide challenges that can often be in…

Not mine. Screen-grabbed from

A self-inflicted challenge because I heard people dig Kubernetes in 2020

“If you can’t explain it simply enough, you don’t understand it well enough”.

Challenge accepted. Here’s my attempt to explain native components of Kubernetes in five minutes with the objective of covering concepts and resource types that will enable you to t̶a̶l̶k̶ ̶a̶b̶o̶u̶t̶ ̶K̶u̶b̶e̶r̶n̶e̶t̶e̶s̶ ̶l̶i̶k̶e̶ ̶y̶o̶u̶ ̶u̶n̶d̶e̶r̶s̶t̶a̶n̶d̶ ̶i̶t̶ understand Kubernetes and deploy applications at a basic level.

As a pretext, I’ve found it useful to think of Kubernetes-related work not as a collection of verbose YAML files defining strange kinds of resources, but as a set of abstractions representing common design patterns in application deployment.

To me, the areas that…

What does it take to conduct an awesome technical interview?

I’ve been conducting interviews for software engineers together with a couple of like-minded colleagues for some time now; and I thought it’d be nice to share my learnings and experiences from this journey of trying to be both a nice human, as well as a reliable gatekeeper for the team.

This piece that follows will try to provide some insights to an ever-improving attempt to answer the question “what does it take to conduct an awesome technical interview?”

Perhaps it’s not really about technology, but the everyday of you and I

Finding an answer to the complex through the everyday

Views expressed here are strictly my own and do not constitute an official statement of any sort

With the private hire vehicle app still displaying five more minutes till my ride, a car that just pulled in gave a short honk that somehow sounded a lot like “don’t need check lah, it’s me”. I checked the number plate anyway and found my honk intuition to be healthy. And just like that I began my journey home — apparently still five minutes away from where I was.

As the roads became increasingly familiar, I began to count the minutes till I…

Social challenges in an engineering environment, and then some

Early on in the product development journey of MyCareersFuture, we decided to involve product owners as part of our end-of-sprint retrospective.

Since it was our first collaboration with Workforce Singapore (WSG), there were teething issues transitioning from the way things were traditionally done on their end (waterfall) to Agile; Including our product owners in retrospectives helped us to better communicate with them on our principles and workflows in Agile. …

Bye 2018, I’ll miss you

Another year older, another year wiser. Supposedly, at least. So here’s a reflection on how 2018 went, and some setting in stone (or in some SSD belonging to Medium) on where 2019 will probably be going.

From 2017

I set 3 things I’d like to do back at the end of 2017. They were 1. Pick up a martial art 2. Engage in a hardware project 3. Record a song.

As life has it, one doesn’t simply have one’s way.

1. Pick up a martial art

Pretty much the only “thing” that went well, and I’m glad to say I’m still studying it till this day. …

With a focus on developer happiness

A whale and a Gopher go to the bar

I began my journey in Golang a few months ago when I decided that JavaScript was getting a little too unwieldy for my liking. TypeScript solved some problems but it made JavaScript as verbose as Java. Anyhow, I have been writing JavaScript for close to half a decade and I thought it’d be nice to learn a different language with a different mental model and development paradigms.

Starting out, my biggest issues I had with Golang was the lack of tooling and the by-now infamous GOPATH requirement. …

Joseph Matthias Goh

on Technology, Software Engineering, and DevOps 🤘🏼 (and a little on growing people these days - a sign of the times 🥲)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store