Apr 302020
 

For some reason, I’ve been seeing a lot of people piping in and saying and/or predicting that monolithic software architecture is going to be making a comeback starting this year. It probably doesn’t help that once I started reading the first article about companies moving from services to monoliths, Google kept highlighting more, but I think the impetus of this was Kelsey Hightower’s unpopular opinion segment arguing that most companies that switch to service-oriented architectures end up creating “distributed monoliths” that are the worst of both worlds. By the way, you’ve likely noted that I’m just using the term “service-oriented architecture” (OK, “SOAs”, because I’m lazy) for both service-oriented architectures and microservices – that’s just to make my life easier – as far as I’m concerned a microservice is just an SOA service with a very small scope.

Continue reading »
 Posted by at 11:45 AM
Sep 302019
 

A couple of months ago, developers on Twitter started spamming jokes or frustrations about the mythical “10X engineer” in response to this tweet by a startup investor from India. Thankfully, outside of this guy’s original tweet thread, nobody else was buying the “10X engineer” nonsense. Unfortunately, the fact that this guy tweeted it in the first place means there’s too many people out there laboring under a delusion that desperately need to be set straight.

Continue reading »
 Posted by at 11:45 AM
Aug 312019
 

One of the benefits of using Javascript frameworks like React or Vue is that you can build and export your own custom components. This lets other teams in your organization or even external developers build front-ends that have a consistent look and feel across the board as well as follow any style or branding guide you have. That’s great, but think about the components you’re putting out there for developers to use. Are you putting out the bare minimum or are you shipping front-end tools that speed development up and make people’s lives easier (you know, the whole point of shipping front-end components like this)?

Continue reading »
 Posted by at 3:45 PM
Jul 312019
 

Do any research into current front-end development, and you’ll hit React pretty quickly. As far as modern Javascript frameworks go, React is probably the standard Javascript framework used by startups and other companies that haven’t already heavily invested in another front-end framework. While React does a decent job of packaging up HTML and Javascript into reusable components, there’s been some design decisions around handling application state in React, namely by using a framework called Redux, that make developing applications harder than it has to be, and make it worth your while to look for other options before you start falling into its rabbit hole too.

Continue reading »
 Posted by at 11:48 PM
Apr 302019
 

I’ve been developing in Java since late 2009. It’s a good language, but I’m starting to wonder what kind of future it has. I’ve been using Java 8 since shortly after it came out, even though Java is currently on version 11. Java’s obviously still being developed, so why not move forward? A big part isn’t the infamous module system that launched in Java 9, and broke a lot of stuff. Part of it is the fact that Java is owned and controlled a by a company that seems more interested in rent-seeking off oa Java than doing anything innovative with it.

Continue reading »
 Posted by at 11:45 AM
Mar 312019
 

Software is written to solve a problem. Sometimes, it’s more than one problem, but you get the idea. Being someone who both uses and writes software, I’ve found the best software out there doesn’t just solve a problem, but was written with a clear and definitive opinion about how that problem should be solved. That’s not by accident or coincidence, it’s very much causal.

Continue reading »
 Posted by at 11:54 PM
Oct 312018
 

I got a comment on my post about performance tuning a REST API call asking about code tuning with examples. I don’t have code examples handy, but I can certainly run through some general performance tuning tips I’ve found over the years. No matter where you find advice about improving your code’s performance, keep in mind that every situation is different, and those differences could impact the relevance and usefulness of any advice offered.

Continue reading »

 Posted by at 11:45 AM
Mar 262018
 

Probably 1 of the most difficult juggling acts in software development is scoping a minimum viable product. I’m pretty sure a lot of that comes from the juggling act and judgement calls that constitute defining said minimum viable product. It’s not easy to do, mostly because defining a minimum viable product involves balancing 2 mutually exclusive terms. That said, I think you can find the best set of tradeoffs en route to the minimum viable product by examining the principles behind each part and then combining them back together once we understand what we’re looking for to satisfy each keyword.

Continue reading »

 Posted by at 11:45 AM
Sep 292017
 

Automatic software testing is an interesting thing. Books have been written on the topic, libraries have been built to try to bring the practice to traditionally hard-to-automate sections of testing, and in some places, it’s so important it’s the first code that gets written. There’s a lot of different philosophies about how it should work, but in my experience, it’s probably an area where the less religious you are about it, the better it’s likely to work for you.

Continue reading »

 Posted by at 11:01 PM
Jun 262017
 

Java 8 introduced a lot of cool features, 1 of the most useful of which was the stream() method. This nifty little method lets you treat an Iterable as a stream, enabling cool things like lambdas operating over a list. Related to stream() is parallelStream(). This lets you group your stream into smaller streams that are run in, you guessed it, parallel. Specifically, your data is processed in a thread pool the size of the number of cores on your machine, minus the one running your app. That’s a handy piece of information you’re going to want to keep in mind before you start throwing this nifty little call around in your code.  Continue reading »

 Posted by at 2:44 PM