We’ve all been there as software developers: We’re writing or reviewing a snippet of code. Then out of nowhere, our intuition tells us that we could further simplify our code. Or, if we are familiar with imperative programming, there seems to be a “functional” way to solve the problem. The “functional” solution is at our fingertips, but we somehow can’t write it down.
I wrote this article to help unblock myself from this type of situation. After all, we can get inspiration from anywhere. It’s a matter of finding the right hints to get to that solution. …
This post will share my experience building a statically generated website, BJJ Notes using NextJS deployed to Render.
Since learning BJJ, I’ve wanted to build a simple website where I could timestamp Brazilian Jiu-Jitsu (BJJ) videos then add notes to those timestamps. I want to write these notes in markdown format. BJJ has many small details in every single position. I think it’s best to capture them with video timestamps and notes. The timestamps help me remember the details behind each position, submission, or guard.
I’ve been trying to learn as much with React. I found out about NextJS from…
I’ve been a Software Engineer for more than a decade now. Over the years, I notice that there are recurring concepts similar between what I do as a Software Engineer and my daily life. I can’t help thinking about these concepts, so I think it will be useful to write them down. These software engineering concepts are helpful to articulate patterns and occurrences that we experience.
I started thinking about these concepts after reading about mental models some time back. It became apparent that there are “mental-model-like” ideas in Software Engineering that intersect with our day to day activities.
As someone who sits in front of the computer as a profession, I take my health and fitness seriously. I started training Muay Thai and Brazilian Jiu-Jitsu (BJJ) about a year ago. It’s one of the best decisions I’ve made. Before that, I was doing mostly strength and cardio training for years. I got bored with the repetitive nature of such workouts, so I decided to try martial arts.
I’ve been a fan of martial arts movies since I was a kid. Jackie Chan’s Drunken Master was the first “Kung Fu” movie that I watched. My father introduced me to…
The irony of being a software engineer is that I wanted to get into management at some point. However, when I finally moved to management, I was doing less of the technical ”maker” work I used to do as a software engineer. That shift has bothered me. How can I acknowledge with full conviction that I am a “software engineering” manager?
As a manager, for the most part, your organization has a different set of expectations for you compared to when you were an engineer. Your organization expects you to manage people and do a little bit of everything. Your…
Functional programming has been increasingly becoming popular as a programming paradigm. LISP and Haskell are leading the way. However, we, the full-stack developers, are lucky that JavaScript natively supports its features.
One of the core concepts of functional programming is first-class functions. Meaning, we are treating functions as first-class citizens. It offers us flexibility in implementing functions by treating them just like any other value (objects, strings, and numbers), passing them as arguments, or returning them from other functions in our code. Understanding first-class functions is an essential foundation for learning and implementing the functional programming paradigm. …
It is not easy to be part of a project requiring multiple teams to work together to complete. If mismanaged, it can cost you and your organization valuable manhours and resources.
Throughout my career as a senior software engineer and engineering manager, I’ve had the privilege to lead the development of medium- to large-scale software that needs coordination between multiple teams and stakeholders. The ups and downs that I’ve experienced along the way have taught me a lot about leading cross-team initiatives — and I took notes and journaled about what I’ve learned. …
The singleton pattern is one of the most straightforward creational design patterns to implement. Aside from being easy to understand, it doesn’t require that many lines of code to write.
Throughout my career, I’ve come across code that uses different singleton implementation variations. I thought it would be great to compile these types of implementations in one article so that readers can use it as a reference in their future projects.
Let’s start with a quick review of what problem a singleton pattern is trying to solve. A singleton pattern is used to maintain a single instance of an object…
When running your team’s day-to-day operations, having an agreed manifesto of Ways of Working will help keep the engine running as smoothly as possible. Codifying this in a readily available document makes it handy to remind the team what the agreed ways of working are.
The agreed “Ways of Working” manifesto should be readily available to remind the team how to work effectively together. It will be a living document that has to be updated continuously based on your team’s situation. Ways of Working usually are initiated during an agile team’s kickoff. …
Ways of working and other unique factors significantly impact the way communication happens within an organization. My goal here is to provide you some tools that you can use immediately as an individual without the need to change anything in your team or organization. These tools are meant to help you communicate effectively. …
Software Engineer. I enjoy harnessing tech to add value to the world. Opinions expressed are solely my own. More about me on ardy.me