I code. I architect systems: usually in the cloud. I teach. I lead teams. I showcase the awesomeness I see in others.

From Scratch: An API Gateway
Joseph Bulger Joseph Bulger

From Scratch: An API Gateway

I tried to think of the best way to describe building an app from scratch in the cloud, but there are so many different ways you can easily get lost in all the options. So I decided I would start by showcasing what is arguably the easiest app you can make from a computing perspective. It offers the least amount of operational overhead, but at the same time, it's the most expensive option on paper.

Read More
From Scratch: DevOps Deployment
Joseph Bulger Joseph Bulger

From Scratch: DevOps Deployment

With our OIDC provider configured, we can start setting up our DevOps build process. This will ensure that everyone on the team follows the same process when deploying infrastructure for anything built into our account.

Read More
From Scratch: OIDC Providers
Joseph Bulger Joseph Bulger

From Scratch: OIDC Providers

It's time to divert our attention to what will soon become our infrastructure deployment process. This will feel a lot like application deployments, but there will be some stark differences we'll be going over. Our applications will incorporate infrastructure in the future, but not everything we do with our IaC will be related to an application.

Read More
From Scratch: Permissions
Joseph Bulger Joseph Bulger

From Scratch: Permissions

Once we have our groups and users set up from our external identity provider we can move on to defining what permissions they should have. This is mostly straightforward, but we'll have to take a few detours along the way because of how groups work with the Google Workspace IDP.

Read More
From Scratch: IaC
Joseph Bulger Joseph Bulger

From Scratch: IaC

It occurred to me recently that it might not be obvious when someone should start using IaC. This can be daunting because there are things you can't do, and some things you shouldn't do with IaC. There are also situations where you could use it, but it doesn't lead to any benefit.

Read More
How to Cloud: Virtual Machines
Joseph Bulger Joseph Bulger

How to Cloud: Virtual Machines

Ok at this point we are now ready to get into deploying your app into some kind of compute solution in your cloud provider. In order to make the best decisions when it comes to choosing said compute solution, we need to start with the foundations of almost all of them: virtual machines.

Read More
Leveraging Standards
Joseph Bulger Joseph Bulger

Leveraging Standards

Standards can often times feel like a hinderance to teams when they are developing software. When trying to deliver something to the market quickly, it’s common to forgo best practices in an effort to achieve goals quicker. This attitude is actually counter productive, however, and by taking a different attitude towards guidelines teams can actually achieve results faster.

Read More
How to Cloud: Fencing
Joseph Bulger Joseph Bulger

How to Cloud: Fencing

Before you can dive into deploying your application you need to create a safe environment for your application to be deployed in. This starts with understanding some basics around making good security decisions, so this next topic is about how to make a good “fence”.

Read More
How to Cloud: IaC
Joseph Bulger Joseph Bulger

How to Cloud: IaC

In my last post I intentionally jumped the gun a little bit when it came to deploying containers into your cloud account. It should be your first priority to get your team to learn containerization, but deploying to the cloud requires allocating container registry infrastructure. That brings us to our next topic which is Infrastructure as Code, and it’s a very close second in priority.

Read More
How to Cloud: Containerization
Joseph Bulger Joseph Bulger

How to Cloud: Containerization

I have kind of a standard approach on building out a cloud presence that I’ve developed over the last decade or so. I’ve used it extensively with multiple teams to create a highly mature DevOps culture within groups again and again. Today I’m beginning a series that explains some of the basics. Hopefully it can be of some use to those trying to understand good ways to leverage cloud technologies.

Read More
Simplicity
Joseph Bulger Joseph Bulger

Simplicity

Making things simple is actually one of the harder things you do in software development. Usually as you grow in your career you will be exposed to at least a couple systems where you are left wondering “how did they ever let it get this bad”. The “bad” we have many words for. Often times, it gets to that point because we don’t prioritize Simplicity enough as leaders.

Read More
Meetings
Joseph Bulger Joseph Bulger

Meetings

I’ve seen a lot of people talking about the importance of asynchronous communication, and prioritizing that over synchronous styles. However, when it comes to getting down to brass tax of exactly how to transition into that type of culture, I haven’t seen a lot of material on the subject. I’m hoping to close that gap some today.

Read More
Empathy
Joseph Bulger Joseph Bulger

Empathy

If Integrity is the cornerstone, then Empathy is a very strong counter weight. I wouldn’t consider myself balanced as a leader if I hadn’t learned how to have Empathy, both for my team and for those around me. And while Integrity did tend to come naturally to me, Empathy was something that took some hard lessons for me to learn.

Read More
Be Replaceable
Joseph Bulger Joseph Bulger

Be Replaceable

When you want to take the next step in your career a lot of people will tell you to “do the job that you want”. This isn’t wrong, but I don’t think it’s a complete picture when it comes to leading. I would argue that preparing for your next step actually starts with showing others how to do what you do. It’s the opposite of what I hear a lot of people recommend. Show your team how to do what you do, so you can replace yourself. That’s the first step…

Read More
Creating a DSL with your team
Joseph Bulger Joseph Bulger

Creating a DSL with your team

Using the terminology and language that everyone uses to describe your product inside the actual code that your team uses can give you a huge advantage in productivity. This is something I’ve gotten into the habit of doing with the teams that I lead and I thought it would be worth sharing.

Read More
Don’t Be a Rockstar
Joseph Bulger Joseph Bulger

Don’t Be a Rockstar

When we first started using slack at work I noticed that colleagues were putting their titles or roles in their profiles. Mine says “Awesomeness Showcaser”. It really stuck with me. Now anywhere I put my role I like to include that if I can. Showing how great your team is or others around helping you succeed is a critical part of being a good leader.

Read More
Know Your Stuff
Joseph Bulger Joseph Bulger

Know Your Stuff

Getting into Leadership you are immediately confronted with a major shift in what expectations there are of you in your role. You are no longer a sole contributor. You’re expected to help others do their job.

Read More
Integrity
Joseph Bulger Joseph Bulger

Integrity

Integrity is the cornerstone that I build all my leadership skills around. I’d like to spend some time talking about why.

Read More