Softinio’s Notes on Software Engineering — Issue #2

Salar Rahmanian
6 min readMar 22, 2021
https://www.softinio.com

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.

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.

https://youtu.be/0XJuq3DYqF8

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.

Upcoming Events

Adam Rosien: An Introduction to Cats Effect | Meetupwww.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 | Meetupwww.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 | Meetupwww.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 | Meetupwww.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

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 …

JDK 16’s Top 5 for Scalawww.scalawilliam.com
Every improvement to Java is an improvement to Scala. Here are my top 5 from Java 16.

The Modern Java Platform — 2021 Edition — James Ward

jamesward.com
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

contramap.dev
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?

www.lihaoyi.com
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 Blogblog.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 Stringsblog.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

The importance of Scala.jswww.scalawilliam.com
Scala.js has the potential to change the way we compute.

Latest Releases

GitHub — spotify/magnolify: A collection of Magnolia add-on modulesgithub.com
A collection of Magnolia add-on modules. Contribute to spotify/magnolify development by creating an account on GitHub.

Announcements

Jobs

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

https://boards.greenhouse.io/tweag/jobs/4212663002

A Nix knowledge is not needed, but is a big plus.

Functional Engineer

https://boards.greenhouse.io/tweag/jobs/4129385002

Experience with at least one functional programming language (Haskell, Scala, OCaml, Erlang, Clojure, etc).

Scala Engineer

https://boards.greenhouse.io/tweag/jobs/5099374002

Strong knowledge of a JVM language such as Java or Scala.

Thank you

Thank you for reading my newsletter 🙏 🍷

--

--