An API Gateway serves as the front-door to your APIs providing features such as route matching and forwarding, rate limiting, path rewriting, circuit breaker patterns, security policy management, throttling, API version management, among other features.
Author Archives: Mathew
Github Copilot
I am really excited about GitHub Copilot, a AI code pair programming capability. While good editors do provide some inbuilt code completion features, this is the first one I used that leans on AI to suggest code completions.
I feel this is an untapped opportunity to assist developers in getting more productive. As with anything new it will take time to mature. The quality of the suggestions by the AI assist will depend on how widely uses the programming language is. As with anything else, you should review the code added thoroughly to make sure it is doing what you intend it to do.
Another evolution of this would be for suggested functions to have unit tests added automatically or the AI to suggest unit tests for existing classes or the AI being aware of the framework being used (say Spring or ExpressJS) and suggesting appropriate framework code. While this is not a low code solution, it is definitely building towards a future where an AI could write the code given a text description of the problem statement (NLP) or at least assisting with scaffolding an entire service (with all the required standards agreed by the team and telemetry built in). Excited to see the possibilities with this.
Ethereum Smart Contract on Ropsten test network
Let’s run through a simple “hello world” example to create and run a simple smart contract on Ethereum. It is amazing how much a simple example can teach you.
Thoughts on dealing with burnout in tech
Mental Health with Kelsey Hightower on the always amazing Software Engineering Daily podcast – https://softwareengineeringdaily.com/2022/02/25/mental-health-with-kelsey-hightower/
This was a great podcast, and I want to thank Kelsey and Jeff for doing this talk. Burnout is a topic we do not talk about openly in the tech community; at least that is my experience over the years. I wish Jeff the very best as he navigates this. In this blog, I share some thoughts about one mental health condition that some of us face – burnout at work. My thoughts here are tied to the software engineering occupation, but it might resonate with other fields too.
GraphQL with Netflix dgs-framework
Starting the year with some back-to-basics hands-on coding using small building blocks in areas that I randomly get interested in. This time using the Netflix DGS GraphQL framework. DGS (Domain Graph Service) is a GraphQL server framework for Spring Boot.
Spring Boot and Redis PubSub
A simple Spring Boot sample to publish a message to a Redis queue, with a message subscriber that consumes the message Spring Data. See README in Github for how to set up a local Redis and run the code.
Spring Boot and Redis
A simple Spring Boot sample to save and retrieve an object from Redis using Spring Data. See README in Github for how to setup a local Redis and run the code.
Technical Debt
For a brief, but an enlightening article on Technical Debt (TD), do read this post from Martin Fowler Technical Debt. My focus here is not about what TD is, but rather some thoughts on WHEN in time do you incur it. Knowing that can help you go in with eyes wide open and maybe reduce the debt burden a bit. To assume you will not gain TD means you are either just out of school with no real-world experience or plain naive (no offense to anyone).
Say hello to Micronaut inside Kubernetes (with Prometheus & Grafana)
In the age of Serverless & Container architectures, there is once again chatter about Java being too fat (and dying). While I can understand the “too fat” observation, I will not put my money on the “java is dying/dead” chatter. That obituary has been written multiple times and the language lives on. It is true that Java was not born in the Container/Cloud era. Yes, it was born in a different age and time, but the language and framework ecosystem has evolved. In the Microservices cloud-native app world where horizontal scaling and fast startup times are expected, Java may (at times depending on the architecture) not be the fastest horse in town.
Engineering Management
It has been a few years now since I moved into the role of Software Engineering Management. While there may be various reasons for one to move to this role, it is a change that comes with very little training and no guidebook. In this blog, I will go over a few areas that I felt are areas to keep an eye on when in this role (a lot of it is relevant to non-manager lead roles too).