Softinio's Notes on Software Engineering - Issue 2
Welcome to the latest issue of my newsletter.
Since the publication of the first issue of this newsletter as you can see I have migrated off of substack and moved to Revue. If you had subscribed to my newsletter on substack your subscription would have been migrated over to Revue. You will receive an email from Revue confirming your subscription to comply with GDPR regulations so please accept that of course if you would like to maintain your subscription to my newsletter.
If you had not subscribed to my newsletter before, please subscribe as I have lots of awesome content planned for the year ahead that I will share with you via my newsletter.
Why did I move to Revue?
After giving Substack a try I reached the conclusion that Revue is a better fit for what I am after, namely the following reasons:
Revue focuses on being a Newsletter and nothing else
Revue provides some out of the box integrations that makes it easier for me to curate the content of my newsletter. For example I can easily add content I may have shared on Twitter.
Revue provides me with access to their API. As a software engineer I see this as a benefit as it will enable me to create my own integrations and automate more of my workflow.
Note / Update (November 2022)
I actually moved back to substack.com as I found it better fit for my newsletter publication for many reasons.
What have I been up to?
Since the last issue I have hosted 3 Scala Meetup events with 4 greats talks:
Adam Rosien of Inner Product LLC kicked the year off with a wonderful talk on Essential effects covering Cats Effect and introducing his new book on this topic. A Highly recommended book which I can't wait to read. You can find details of his book and purchase it here.
Sandeep Virdi returned to SF Scala meetup for a talk on his implementation of Fast Serializable Multi-Version Concurrency Controlfor Main-Memory Database Systems using Scala and ZIO.
The other two talks have not been published so will include in my next newsletter.
Adam Rosien: An Introduction to Cats Effect | Meetup — www.meetup.com Wed, Mar 24, 2021, 7:30 PM: Cats Effect is a library that makes it easy to write code that effectively uses multiple cores and doesn’t leak resources. This makes building complex applications, such as
KUDO for MLOps: Kubernetes Universal Declarative Operator | Meetup — www.meetup.com Thu, Mar 25, 2021, 4:00 PM: While the rise of Kubernetes has been meteoric, deployment of stateful services onto Kubernetes is still in its infancy. While tooling to build operators to handle the natu
Good Code, Bad Code, and Vulnerable Code | Meetup — www.meetup.com Wed, Apr 7, 2021, 6:30 PM: ZOOM ONLY - REGISTER FOR EVENT TO GET ZOOM URLJoin the zoom at 6:30 pm US pacific time! The audio doesn't start until we do, so don't worry if you don't hear anything at fir
Introduction to Cats Parse By Jeff Lewis | Meetup — www.meetup.com Wed, Apr 14, 2021, 5:30 PM: This event will be streamed on Twitch (please log into twitch before the event starts). Once you RSVP you will see the link to twitch to join!For the hallway track and to a
Latest from the world of Scala and Java
Java 16 Released
Exciting to see Java 16 released with some nice anticipated features like Records and Sealed classes.
The arrival of java 16! – Inside.java Further demonstrating Java’s path of continued innovation, Oracle is proud to announce the general availability of Java 16 representing the sixth feature release as part of the six-month cadence. This level of predictability allows developers to more easily manage their adoption of innovation thanks to a steady stream of expected changes ...
The Modern Java Platform - 2021 Edition - James Ward Many developers were burned by the overly complex world of Java back in the early 2000s. The Gang of Four patterns and middleware / J2EE / Java EE led to ridiculous levels of alleged decoupling as is evident in this sequence diagram from an open source J2EE ecommerce system I worked on in 2002: Back in 2014 I wrote about how things had changed: Java Doesn’t Suck – You’re Just Using it Wrong. But six years have passed since I wrote that and things have continued to improve, making the Java platform a fantastic option when building microservices, data pipelines, web apps, mobile apps, and more. Let’s walk through some of the “modern” (as of 2021) aspects to the Java platform.
Great articles and blog posts to read
Functional Design | Francis Toth / Contramap This is a long due post following the talks given recently at Dawscon, CodeMesh, and Scala Toronto about Functional Design (slides are available here). This post has been updated since its first publication. As noticed by Alwin and following this conversation, the name IO can be confusing so it has been replaced by Console. Considering the amount of material available today, Software Design is rather intimidating.
From First Principles: Why Scala? Scala, first appearing in 2004, is neither an old stalwart nor a new player in the programming language market. This post will discuss the unique combination of features that Scala provides and how it compares to other languages on the market, diving beneath the superficial experience to explore the fundamentals of the language. From this, you will learn why you might consider including Scala as a valuable addition to your programming toolbox.
Compilers are hard | ShipReq Blog — blog.shipreq.com Writing (something like) a compiler is hard. Here I explore what some of the difficulties are, and provide some strategies to ensure you still maintain quality.
Masking the Problem: Representing Complex State Without Strings — blog.colinbreck.com A number of factors have contributed to the widespread use of strings for representing complex information in computing. HTTP, a text-based protocol, and HTML, a text-based mark-up language, became the foundations of the Internet. JSON, which is essentially a formatted string of keys and values, became ubiquitous for HTTP APIs
GitHub - spotify/magnolify: A collection of Magnolia add-on modules — github.com A collection of Magnolia add-on modules. Contribute to spotify/magnolify development by creating an account on GitHub.
Our friends at Tweag who as you know are big contributors and evangelists of Nix are looking to hire for a number of roles related to Nix, Scala and Functional Programming in case anyone is interested (please share), details as follows:
Software Engineer - Developer Productivity
A Nix knowledge is not needed, but is a big plus.
Experience with at least one functional programming language (Haskell, Scala, OCaml, Erlang, Clojure, etc).
Strong knowledge of a JVM language such as Java or Scala.
Thank you for reading my newsletter 🙏 🍷
Thanks for reading Softinio's Notes on Software Engineering! Subscribe for free to receive new posts and support my work.