Installing Jenkins on Google Cloud Platform

In this post, I explain how to correctly set up a production-ready FREE Jenkins installation on Google Cloud Platform.

Continuous Integration (CI) proved to be of extreme importance to developer productivity. Implementing a CI pipeline sets the framework for code contributors to make sure their new additions/deletions improve the code base and don’t fall back to a non-ending journey of debugging. When it comes to implementing the pipeline, there are many cloud-based tools that can make this automation easier. For example, CircleCI, Travis CI, GitLab CI and the newly-introduced (at the time of writing) GitHub Actions. However, there are some cases where a project needs to self-host its automation server, and this is where Jenkins comes as a well-developed and well-maintained automation server.

In this post, I show how to correctly set up a prodcution-level master Jenkins server. This demo is implemented on Google Cloud Platform as it offers unlimited free (forever or until further notification) Compute Engine instance. It is a small instance (F-1 micro), but should be fine for small tasks. If you have builds that take longer times, or requires a large amount of memory, you should start a bigger server on any cloud provider. Also, we will use Debian GNU/Linux 9 as the OS on whichever instance you choose.

Caching Builds with Docker Build Branching

This post describes a technical failure story and gives reasons why it failed. I was trying to use a Docker environment to build a C++ project and cache the build artifacts to not build them again if they are not changed (utilizing Makefiles). This post gives the context, my approach and where it failed.

GitHub: https://github.com/abdelrahmanhosny/yosys

Description: Yosys is an open-source Logic Synthesis tool. It takes a circuit design written in Register-Transfer-Level (RTL) and synthesize it to produce a netlist ready for placement and routing. The project is written in C++. The tool is used in an end-to-end silicon compilation flow, called OpenROAD. The complete flow unifies a build platform to use CentOS. Therefore, it was ideal to introduce a Docker build for it to ensure portability.

International Students - Understand USA Tax Jargon

As a new international student arriving in the US ~4 years ago, I was puzzled by all-things tax-related, especially that I arrived in the Spring semester (tax season). Why is it so complicated?

Today, I was asked by a friend who is a new comer to a graduate-level program: Can you give me any guidance about taxes? Do we have any sort of treaties for reduction, or how did you manage taxes here? What should I expect to pay in general?

Rephrasing his question, What is the deal with all this tax bullshit they told us about in the student orientation?

So, I replied to his email and my reply looked so long that I thought it would benefit some confused new comer out there. While this is not a financial advice, I just describe what the terms you will hear/read everywhere mean.

TL;DR

Don’t get scared and don’t worry about taxes. You will know when it is time to take action.

Some Types of Taxes

If you are coming from a country that didn’t require you to sort out your taxes (just like my country - Egypt), you will most probably be confused similar to how I was in my first few days in the US. You go to a grocery store to buy something, and at the cashier, you find yourself paying a little bit more than the price tag on the item. Welcome to Sales Taxes.

Pagination