A software engineer who aims to evolve, innovate, and inspire through technology.
Previously, I was a Unity Developer at Novaby, working as a mobile full-stack engineer.
My responsibilities centered around AR technology in conjunction with Unity’s AR Foundation.
Prior to that, my experience includes working as a Software Engineer, primarily using Unity,
at various game companies such as T-Nexus, imi tech, GameBarley, etc.
My primary areas of focus were gameplay, system architecture, tools, and automation.
Outside of work, I’ve created over 200 tools (see Projects) that people used and over 1 million downloads.
Problem with LeetCode and SWE jobs
This is a rant about software engineering interviews and LeetCode.
šÆļø Preamble In 2024, hundreds of thousands of people worldwide are grinding through LeetCode, aiming to break into the tech industry, drawn by the high salaries it offers.
š¤ What does LeetCode actually bring? LeetCode offers little more than these benefits:
Algorithm exercises and data structure knowledge Coding under pressure (Why though? Are we in a war zone now?) Passing coding interviews However, completing LeetCode doesnāt prove youāre a good software engineer. It only shows you can code basic algorithms and solve programming puzzles. It doesnāt test essential skills like collaboration, communication, documentation, design patterns, system architecture, low-level programming, or core computer science knowledge.
...
Being 10x engineer in my first job
Recently, I came across a post on LinkedIn with the eye-catching title, āI think Iāve met a 10x engineer.ā But as I read through the post, I started to have doubts. The author described how one of their colleagues had managed to fix a bunch of complex bugs in a short amount of time, which left them in awe. š¤
But is that really what defines a 10x engineer? It brought back memories of my own experience as a so-called 10x engineer during my first job!
...
Elisp Language Server
Repo link: https://github.com/jcs090218/ellsp
Iāve recently created a language server for Emacs Lisp. Itās interesting since people donāt think a language server for Emacs Lisp will provide any value. The statement is correct, and so do I. Emacs Lisp is only used within the Emacs editor, and Emacs itself is an Emacs Lisp interpreter. Therefore, a language server for Emacs Lisp would hardly bring any benefits to Emacs users.
But imagine you can code elisp (short for Emacs Lisp) outside of Emacs. That sounds interesting, huh? š¤
...
How to build your own ELPA with Eask?
ELPA stands for Emacs Lisp Package Archive. Itās used for Emacs users to download packages from, and itās also the place where Emacs Lisp developers will host their packages. Here is a list of famous ELPA; see their site for more information!
GNU Elpa (official) NonGNU Elpa (official) MELPA ā Why? So why do we want to host our own ELPA? Arenāt those ELPAs enough?
Yes, in general, you donāt need to host ELPA yourself since most packages you need will be available in one of those ELPA (packages can co-exist between ELPA). Here are several reasons why you might want to build your own ELPA:
...
My first VSCode plugin
Repo Link: https://github.com/shader-ls/vscode-shader
Aug 23rd, 2023. Iāve created my first VSCode plugin ā vscode-shader. My intention was simple: to create a language serverās client in VSCode for my shader-language-server that I created a couple of months ago. š¤
š° Simple and good UX First of all, it is very simple to develop a VSCode plugin. Especially developing a language serverās client for VSCode. There are many examples and good documentation on their site, making it very easy for developers. I am using uniteai and grammarly-language-server as the references.
...
Shader Language Server (LS)
Repo Link: https://github.com/shader-ls/shader-language-server
April 30th, 2023. I have created my first language server that is actually useful to someone. I tried a language server a while back, but it was just an example server, so itās not very useful, and itās only for educational purposes.
The target language I chose to write is the ShaderLab language. ShaderLab is used in Unity Engine, so you can write custom shaders to stylize your game. Unlike regular programming languages, ShaderLab is much simpler to analyze, so the language server can respond to the client side.
...
Long Journey with Emacs
ā ļø The intention of this post is to remind myself why Emacs isnāt worth my time anymore.
Iāve been using Emacs since 2015. I have developed more than 150 elisp packages, and maintained over 200 packages (including my packages). Itās been a long journey staying in the Emacs community, I think itās a good for me to slow myself down and step back a little and think what Iāve accomplished through out these years.
...
Emacs Eask 101 - Build tool
Iāve developed more than 50 elisp packages, and maintain 100 or more of them. Developing an elisp package isnāt easy for a beginner, especially for those who want to publish their package to an ELPA. e.g., GNU Elpa, NonGNU Elpa, MELPA, etc.
Thatās why I use Eask to help me develop elisp packages. Therefore, in this article, Iām going to teach people how to use this tool to help you build your own elisp packages! š
...
Fastest ELPA
Whatās the fastest ELPA? Letās define it first! The ELPA runs the fastest? No, that doesnāt make any sense. The ELPA serves you the fastest? Maybe.
The definition for fastest ELPA in this article means it builds your packages the fastest! You might wonder why and how! Let me explain it to you!
Normal ELPA, like MELPA, builds packages from the recipes directory, so it takes O(n) to do so. The more packages one ELPA holds, take longer the time to get packages to update to the server. The general solution is to use a more powerful PC to reduce the build time.
...
First server migration
I have always been using AWS as my main web hosting choice. But I have come to the point that I reckon the price and services arenāt something that I need. Therefore, I have decided to switch to another web hosting company just for another taste.
The main reasons are listed below:
AWS charges you money when you click on their services without notifying the user. I dislike how it functions. The price is too high, plus I donāt really need it UI is awful, and UX is bad Jargons arenāt transferable (Iām picky) Now, letās move into details.
...