I have a confession to make. I hate Dependency Injection (DI) frameworks. My very first job as a Software Engineer involved working with a very complex system that powered a ~100 person hedge fund. We made extensive use of Dependency Injection… but only via Constructor or Setter Injection. We did not use any DI frameworks … Continue reading An Alternative to Dependency Injection Frameworks
Myths Programmers Believe about CPU Caches
As a computer engineer who has spent half a decade working with caches at Intel and Sun, I’ve learnt a thing or two about cache-coherency. This was one of the hardest concepts to learn back in college - but once you've truly understood it, it gives you a great appreciation for system design principles. You … Continue reading Myths Programmers Believe about CPU Caches
Don’t be an Evolutionary Programmer
When you run into a problem, a bug in your code, how do you try to fix it? Do you try to debug the problem, in order to figure out what the root cause is? Do you use tools like debuggers, loggers or code inspections, in order to better understand where and what is causing … Continue reading Don’t be an Evolutionary Programmer
Building a WebApp from A-Z: The Caucus Tech Stack
When building Caucus, my first personal project, I had a couple of core goals and philosophies that I used to guide all my decisions. Keep it simple. Keep it small. Be very lazyFocus ruthlessly on your user experience and value add. For all other distractions: Outsource and minimizeEnable rapid scalability to millions of visitors if … Continue reading Building a WebApp from A-Z: The Caucus Tech Stack
From Hello-World to Web-Launch in 2 Years
There was a time when I had never seen nor touched an IDE. I had never laid eyes on Java, SQL, AWS or even REST APIs. If you had told me that over the next 2 years I would go on to build and deploy my own web API, with the entire REST interface coded … Continue reading From Hello-World to Web-Launch in 2 Years