== CJ Virtucio ==

Non-Code Aspects of Software Development

business agile software development
Not just engineering Developers sometimes get too engrossed in polishing up their technical abilities. They forget that code is only part of software development; there are others like managing expectations, and establishing trust with stakeholders. The following advice speaks to the non-technical half of the process, and is particularly relevant for junior and mid-level software engineers. Take initiative Mentorship can be great, but it’s not always available. Senior engineers are typically too swamped to give new developers the guidance they may (rightfully) expect. Read more...

Interface-based Programming

interfaces programming software engineering decoupling solid interface segregation principle contracts java
About two weeks ago, I spoke about composition as a software engineering concept. Today’s topic is about a tool for bringing two components together: the interface. In general, an interface is how two components communicate with each other. In a peer-based system, this means that a client and a server don’t talk to each other directly. Rather, the client goes through some well-defined entry point. With REST, for instance, clients can always assume that POST and PATCH mean very specific things, without having to know anything about the server. Read more...

Fault-tolerant File Uploads

fault-tolerance file uploads java spring boot tus protocol
Introduction The internet is a system of components that are independent and interact only through messages. This is the RESTful web architecture. Clients and servers send each other representations of state, and do not share state. Hence the name Representational State Transfer (REST). In law, we have this concept of ‘fortuitous events’. Things can go wrong, and many times they’re beyond anyone’s control. Maybe your internet goes down. Maybe a flash flood inundates the server room. Read more...
Previous Page 2 of 2