Even though Ubuntu/Debian is equipped with its legendary powerful package manager, dpkg, in some cases, it is still beneficial to take advantage of Nix, a purely functional package manager.
Your little Firebase project is getting bigger every day? Never underestimate the need to establish a solid and firm integration tests from the get go.
For a blog hosted with Firebase Hosting, it turns out that a little search box is fairly easy to implement by using Cloud Functions for Firebase.
After using Azure DevOps for a while, I am totally sold on its Auto Complete feature for pull requests. While it does not apply universally, I do believe that any development process should be at the level where merging pull requests, or generalizing it, integrating all forms of contribution, should be as automatic and as hassle-free as possible.
Thanks to the MSYS2 project, now there is an easy way to utilize Clang to build C/C++ application on Windows. This works equally well for both 32-bit and 64-bit programs.
Developing cross-platform applications presents a major challenge:, how to ensure that every commit does not break some combinations of operating systems and CPU architectures. Fortunately, thanks an array of online services and open-source tools, this challenge becomes easier to tackle.
Now that WSL 2 packs a true Linux kernel and supports Linux containers (via Docker), it can be a perfect setup to perform application cross compilations.
WebAssembly is getting more popular than ever. The use of WebAssembly outside the confinement of a web browser also starts to gain traction, as evidenced from projects such as WebAssembly Interface. Understanding the memory model of WebAssembly will be important in order to fully comprehend its power as well as its constraints.
React Native emerged as a popular framework to build Android and iOS applications from a single code base. Verification of React Native apps during the development phase is not always easy, but thanks to a host of managed services, the CI/CD process can be simplified a lot.
Traditionally, setting up a continuous integration system for iOS development is not always trivial. Since building can only happen on macOS, this requires a dedicated machine or alternatively, a machine you can rent (in the cloud). With all the hosted CI these days offering macOS support, such a task becomes less challenging.
Azure Pipelines emerged as a new compelling all-in-one solution for continuous integration. How difficult is it to use it to compile, build, and package an Android app? Apparently, not difficult at all.
When developing a web app, it is important to verify that the app works with various web browers. A very comprehensive way to do this is to use a Selenium Grid with a wide selection of web browsers connected to the grid. A complementary approach is to ensure that the continuous integration includes running the tests with the latest version of the most popular desktop browsers.
What is the purpose of being an engineering manager? After studying it for a while, I realize that there is a strong reason to believe that it is very much similar to the responsibility of a teacher to their students, a coach to their athletes, and a mentor to their mentees.