As I shared previously, I don’t think AI is killing software engineering; it does however transform it. The rise of AI coding assistants—like GitHub Copilot, Cursor, and others—has fundamentally changed how we build software. But more importantly, it’s changing who we are as engineers. We’re no longer just writing code. We’re shaping product—fast, and often […]
Thoughts on AI from a software engineer (at heart)
There’s been a lot of noise lately about AI “replacing” software engineers. I get it. Watching GPT-4 generate code on command or seeing Copilot autocomplete entire functions can feel like magic. For some, it sparks excitement; for others, existential dread; and for others yet the wrong belief that software engineering teams are a thing of […]
Implementing a “Login with Microsoft” for a web app
I’ve had a go recently at looking at Spring Boot OAuth2 and how easy it is implementing a sign in with Microsoft using OAUTH2. My findings were surprising and justified I think this blog post. More importantly I think it explains why Microsoft has such little “pull” with developers nowadays. (Sure they are trying to […]
The problem with calendars nowadays
I find myself stuck to my phone nowadays — it’s a necessary evil that helps me keep on top of my work through a plethora of apps which are no longer a help but rather a necessity. There’s email, Slack, Github, Okta, Google Docs, LinkedIn, WhatsApp, Zoom, SMS and the list goes on. Amongst these, […]
Experience or institutional knowledge?
These 2 things are often confused in our industry: experience and institutional knowledge. Too often I see companies evaluating engineers based on the fact they know where to go and make changes quickly and put out fires, rather than looking at the impact long term an individual has, on the platform, on its stability, on […]
Working with senior engineers
This is another topic that I often get asked about when I advise companies. It often comes packaged in the format “what do I need to do to attract more senior engineers?” but the core of it is the same: how do you work with senior engineers? As an engineer myself and having worked throughout […]
Polyglot or poly-framework?
Our Universe is expanding every day — and I mean this in the sense of our “programming universe” (though the other, ad literam interpretation is true as well, since our actual physical Universe is expanding indeed). Every meetup and every website I come across advocates a new framework, a new architecture, a new language, a […]
What makes a good CTO?
I have been a CTO myself a few times and worked for some of the greats (and learned!) so I get asked often about what are the traits of a good CTO, be it by the companies I’m advising privately and also through Endeavor mentorship sessions. If you are a co-founder looking for a CTO […]
I’m a senior engineer and I want a promotion!
This is something that comes up often in sessions through the Endeavor network or with companies I advise so I thought it worth a blog post. Imagine a situation where you have a startup, you are in the right place and have the right skillset to scale this up, you build up your engineering team […]
How to read version number and other details from Java manifest
One of the challenges I have seen teams struggle with nowadays is versioning their packages. One of the problems with adopting any versioning system is that typically you have to version (at least) 2 components: the binary you are releasing AND the source code, at the time you have built the software. Doing this allows […]