The T-Shaped Engineer Strategy

First off, when back then 2-3 years ago. I learned several programming languages like Rust, Haskell, Elixir and ReasonML. During that time, I built several fancy projects. I felt happy and thought I needed to learn as much as possible. That’s not without reason, I’d to prove and challenge to myself I can go there! I shouldn’t wait for a miracle and just sit with my laptop, then lament my fate!

Natserract

Natserract

Apr 12, 2024

Trusting people becomes more scarce

People start talking about what they want, their ideas, how great they are, and how they survive. It's quite natural for people to share their stories with those closest to them, just like a cat feels safe and trusting with its owner. These people grabbed my attention, without feeling awkward sitting with them.

Natserract

Natserract

Feb 03, 2024

Use Window Functions Instead of GroupBy

Window function is actually quite similar like groupBy, but I think it’s more powerful and flexible. It’s purpose to group a set of data and apply aggregate operations, such as AVG, MAX, etc.

Natserract

Natserract

Aug 14, 2023

Defensive Programming

Defensive programming mungkin pembaca disini sudah pernah mendengar atau belum pernah mendengar tapi secara ga sadar udah pernah lakukan?. Nah sebelum bahas lebih lanjut, saya mau cerita sedikit. Saya awalnya aga skeptis dengan cara golang menangani kesalahan, dimana itu terlihat seperti pengecekan berulang2 kali

Natserract

Natserract

Jul 04, 2023

Deploy Javascript App to Cpanel

Specifications Niaga Hoster, NodeJS V.16^, NextJS (Turborepo) 13

Natserract

Natserract

Apr 14, 2023

DRY Your SQL Query

DRY (Don't Repeat Yourself) merupakan prinsip dasar pemrogaman. Masalah yang terjadi umumnya terkait dengan kode yang berulang, saat logika yang sama ditulis berulang nantinya ketika ada perubahan, pemrogram harus merubah keseluruhan logic dimana-mana, sehingga ini membuang banyak waktu.

Natserract

Natserract

Mar 07, 2023

Increase My Productivity

Tingkat produktivitas setiap individu itu bersifat relative. Menurut saya ini bisa dilihat dari : 1. Waktu yang dibutuhkan dalam proses pengerjaan 2. Seberapa besar / penting masalah yang dihadapi 3. Code quality (may be drastically different from what another individual value)

Natserract

Natserract

Mar 02, 2023

Elixir Data Types

Elixir adalah bahasa functional yang ditulis secara dinamis (dynamic language), yang artinya setiap variabel memiliki tipe data tertentu, tetapi tipe tersebut tidak dicek dan program akan tetap berjalan, hampir semua aspek bersifat dinamis.

Natserract

Natserract

Aug 29, 2022

Dealing with Race Conditions Status

Race condition merupakan sebuah keadaan dimana terdapat dua atau lebih proses/variabel/state yang berjalan dan digunakan secara bersamaan. Contoh sederhana dari race conditions adalah sakelar lampu. Di beberapa rumah ada beberapa sakelar lampu yang terhubung ke lampu langit-langit umum. Ketika jenis sirkuit ini digunakan, posisi sakelar menjadi tidak relevan. Jika lampu menyala, memindahkan salah satu sakelar dari posisinya saat ini akan mematikan lampu.

Natserract

Natserract

Aug 27, 2022

Eager Techniques

Eager/Eager Loading/Eager evaluation, pernah dengar istilah ini? Yap, ini juga saya baru dengar ketika coba menjajal teknologi backend di kerjaan saat ini. Secara tidak sadar ternyata teknik ini telah banyak digunakan di sistem ORM semacam active record, dan sequelize

Natserract

Natserract

Aug 18, 2022

Elixir Pattern Matching, Assignment, & Immutability

Elixir adalah bahasa pemrograman fungsional, dinamis, dan metaprogrammable dibangun untuk membuat aplikasi yang scalable dan maintanable. Elixir dibangun dari bahasa pemrograman Erlang, secara bersamaan bahasa ini melakukan pendekatan actor based untuk masalah concurrency dengan syntax yang lebih sederhana, clean, namun kuat.

Natserract

Natserract

Jun 05, 2022

Functional Programming Principles

Secara harfiah pemrogaman fungsional adalah metode membangun program yang mengutamakan/menekankan fungsi dan aplikasinya. Dalam implementasinya, pemrogaman fungsional menerapkan penggunaan data yang tidak berubah, murni, fungsi transparan referensial, dan fungsi tingkat tinggi

Natserract

Natserract

Jun 05, 2022

Rust · macOS Setup Guide

Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. Rust achieves memory safety without garbage collection, and reference counting is optional. Rust has been called a systems programming language and in addition to high-level features such as functional programming it also offers mechanisms for low-level memory management.

Natserract

Natserract

Dec 29, 2021

AWS S3 Presigned Url

Secara umum metode pengupload-an biasanya file disimpan ke server, meskipun ini cara yang sah2 saja, tapi memiliki dampak yang sangat signifikan: Mengunggah file ke server dapat berdampak negatif pada sumber daya sistemnya (RAM dan CPU), terutama ketika berurusan dengan file yang lebih besar atau pemrosesan gambar.

Natserract

Natserract

Dec 18, 2021

Local Storage Running in Observer

Called localStorageObserver this is a simple storage library for JavaScript, get inspire from localForage but running as Observer. This library support TypeScript, and EasyTo-Use.

Natserract

Natserract

Nov 14, 2021

Do's and Dont's

Not force things! Just opinion based on my experience. You are what you believe. Ini murni pendapat saya, tidak memaksa orang untuk pro atau kontra. Lihat dan ambil manfaatnya. Diambil berdasarkan kisah nyata pengalaman pribadi, do's apa yang saya lakukan versi saya, dan dont's apa yang harusnya tidak dilakukan.

Natserract

Natserract

Nov 01, 2021

Lazy Evaluation in Haskell

So, you know quite some bits of Haskell now and are willing to dig a bit deeper, understand when something in your code is going to get evaluated, and when it won’t? You have just landed in the right place. Talk about pattern matching, expression, and lazy evaluation

Natserract

Natserract

Oct 27, 2021

Haskell Type Systems. Zero Runtime Errors

Sebagai pengguna type system, fitur ini memiliki beberapa keuntungan tersendiri selama proses development seperti menjaga konsistensi data, mengurangi runtime errors, dll. Tidak bisa dipungkiri lagi, kebanyakan jenis bahasa pemrogaman yg adopt fitur ini rata-rata functional language, seperti: ML (Meta Language), OCaml, Haskell, etc.

Natserract

Natserract

Oct 17, 2021

React Optimization Techniques

Didalam pengembangan sebuah software performance merupakan salah satu faktor penting yang harus diperhatikan, karena ini menyangkut tentang kinerja dari software itu sendiri yang nanti langsung berdampak pada end-user, dan begitu juga bisnis.

Natserract

Natserract

Oct 01, 2021

Run Your Function Only Once

Terkadang di beberapa kondisi mungkin kita perlu menjalankan suatu fungsi hanya sekali meskipun pemanggilannya berkali-kali. Ini bisa terjadi, tergantung kondisi dan case masing-masing. Contohnya dibeberapa case seperti: Randoming number (first execution), Handling event, Operasi basis data, dan operasi lainnya.

Natserract

Natserract

Sep 17, 2021

Method Overidding, Monkey Patching

Monkey patching atau tambalan monyet ini merupakan istilah yang merujuk pada perubahan kode, dimana pada intinya ini adalah sebuah cara/teknik untuk memperluas atau memodifikasi kode/API yang sudah ada tanpa harus merubah kode aslinya. Menarik bukan? Cara ini juga telah digunakan oleh beberapa library seperti Moo Tools.

Natserract

Natserract

Sep 17, 2021

Infix, prefix, postfix. Is it Matter?

Faktanya bahwa kita tidak akan bisa lepas dari matematika di kehidupan, khususnya di bahasa pemrogaman yang matematis yaitu functional programming. Seperti yang dikatakan seorang blogger matematikawan "After my involving myself in the subject, one thing"

Natserract

Natserract

Apr 03, 2021

Remote Data in React with Render Props

Bagi kamu para react dev, ada yang sudah dengar ini? Iyap, render props adalah sebuah teknik di react dimana kita bisa berbagi data antar komponen yang di passing melalui props. Props ini nantinya akan mengembalikan sebuah nilai berupa fungsi. Render props sendiri terdapat 2 jenis cara, ada yang melalui props ada pula melalui children

Natserract

Natserract

Mar 09, 2021

Melamar Perusahaan, Seperti Melamar Doi

Di era modern ini, fakta yg kita tahu bahwa teknologi semakin hari semakin berkembang dan banyak bermunculan. Sebagai developer tentunya kita akan dituntut untuk terus belajar atau minimal mengetahui teknologi tersebut, kalau tidak pasti

Natserract

Natserract

Mar 02, 2021

React Hooks useRef vs useState

useRef merupakan hook yang mengembalikan objek ref berupa properti .current yang sifatnya mutable atau bisa diubah. useRef() berguna tidak hanya sekedar attribut ref, tapi juga berfungsi untuk mempertahankan nilai yang berubah selama masa hidup komponen.

Natserract

Natserract

Feb 14, 2021

The Power of JSDoc

JSDoc itu adalah dokumentasi dari source code yang kita buat, bentuknya simple hanya berupa komen tpi penggunaannya sangat berguna nantinya

Natserract

Natserract

Dec 23, 2020

Angular DOM Manipulation

Bagi pengguna Angular, mungkin sudah pernah menggunakan ataupun pernah dengar apa itu Renderer. Fitur ini sudah muncul sejak Angular versi 4. Bagi kamu pengguna Angular 8/9, saatnya bermigrasi ke Renderer2.

Natserract

Natserract

Jul 09, 2020

Serba Otomatis dengan Shell Script

Tingkatkan produktivitas kerja Anda dengan shellscript. Bagi kalian yang mau cepet, dan serba otomatis mungkin ini bisa bermanfaat buat kalian. Nah, shell script? fungsinya buat apa?, shell script sebenernya adalah sebuah bahasa pemrograman yang berfungsi sebagai jembatan antara user dan kernel untuk menjalankan perintah2 Unix/Linux shell.

Natserract

Natserract

May 08, 2020

Mutable/Immutable pada Javascript

Mutability dan immutability merupakan suatu konsep penting dalam dunia pemrograman. Pada dasarnya ini adalah sebuah objek dimana state/nilainya tidak dapat diubah, sedangkan mutable adalah sebaliknya, nilai/statenya dapat diubah

Natserract

Natserract

Apr 27, 2020

Functional Programming di Rust

Functional programming (FP) adalah paradigma pemrograman dimana memungkinkan kita untuk menulis kode program yang ekspresif, ringkas, dan elegan. Functional programming juga membantu developer untuk mengatur kodenya agar tidak DRY (Don't Repeat Yourself) alias tidak menulis kode yang sama berulang-ulang kali. Functional language lainnya contohnya seperti Lisp, Clojure, Erlang, Haskell, R, dan masih banyak lagi

Natserract

Natserract

Apr 22, 2020

Implementasi React pattern di VueJs

Yang akan di bahas disini adalah bagaimana para React developer bisa menggunakan React pattern di Vue dengan kode yang mirip/sama (97%). Ketika pertama kali kamu ingin belajar suatu teknologi khususnya frontend, biasanya kamu bingung mau mulai dari mana, salah satu alasannya karena kamu dihadapkan dengan banyak pilihan stack, contohnya: Vue, Angular, React, dll. Tentu saja ini membingungkan, maka dari itu supaya tahu bagaimana stack2 itu bekerja, caranya adalah harus langsung mencobanya. Yang perlu diingat semua teknologi punya pros dan consnya masing2.

Natserract

Natserract

Nov 30, 2019