About Me

My name is Steve. I am a Principal Engineer at Relativity and an Adjunct Professor of Software Engineering at DePaul University.

My primary area of responsibility at Relativity is the storage system behind RelativityOne, Relativity’s cloud-based software-as-a-service e-Discovery product. I have designed and implemented a number of components in both the structured (SQL) and unstructured (object / file) storage backends. Before Relativity, I worked in the financial industry for 15 years, primarily for the financal research firm Morningstar. I am a CFA charterholder, but I rarely use these skills professionally nowadays.

At DePaul, I teach three courses: SE 480: Software Architecture I, SE 457: Service-Oriented Architecture, and SE 441: Continuous Delivery and DevOps. I have been teaching at DePaul since 2017.

For more about my professional history, please visit my LinkedIn profile.

I have blogged on-and-off since 2004. Over the last 15+ years, I have published a number of blog post series and projects on this website. I also have a number of open source projects on GitHub.

Recent Blog Posts

Monday 2024-07-15 Assorted Links
Assorted Links links
Published: 2024-07-15
Monday 2024-07-15 Assorted Links

Assorted links for Monday, July 15:

  1. “We’re Living in a Nightmare:” Inside the Health Crisis of a Texas Bitcoin Town
  2. Ubuntu 24.10 To Enable Frame Pointers For More Packages: tl;dr: don’t use -fomit-frame-pointer anymore.
  3. State of Text Rendering 2024
  4. Scalpers Work With Hackers to Liberate Ticketmaster’s ‘Non-Transferable’ Tickets
  5. Exploring the challenges in creating an accessible sortable list (drag-and-drop)
Wednesday 2024-07-03 Assorted Links
Assorted Links links
Published: 2024-07-03
Wednesday 2024-07-03 Assorted Links

Assorted links for Wednesday, July 3:

  1. Error and Transaction Handling in SQL Server: Part One – Jumpstart Error Handling
  2. Error and Transaction Handling in SQL Server: Part Two – Commands and Mechanisms
  3. Error and Transaction Handling in SQL Server: Part Three – Implementation
  4. SLICK: Adopting SLOs for improved reliability

    SLICK can help us locate metric and performance data regarding the reliability of a specific service just by knowing its name. It does this by building an index of onboarded services that link to dashboards with standard visualizations to analyze and assess the service reliability. So, with a single click, it becomes possible to know whether a service currently meets or doesn’t meet user expectations. We can then start asking why.

  5. Using Admission Controllers to Detect Container Drift at Runtime
Tuesday 2024-07-02 Assorted Links
Assorted Links links
Published: 2024-07-02
Tuesday 2024-07-02 Assorted Links

Assorted links for Tuesday, July 2:

  1. How to Measure DevSecOps Success: Key Metrics Explained

    Key DevSecOps metrics:

    1. Number of security vulnerabilities over time
    2. Compliance with security policies
  2. “Energy-smart” bricks need less power to make, are better insulation

    According to the RMIT researchers, “Brick kilns worldwide consume 375 million tonnes (~340 million metric tons) of coal in combustion annually, which is equivalent to 675 million tonnes of CO2 emission (~612 million metric tons).” This exceeds the combined annual carbon dioxide emissions of 130 million passenger vehicles in the US.

  3. Researchers upend AI status quo by eliminating matrix multiplication in LLMs

    In the new paper, titled “Scalable MatMul-free Language Modeling,” the researchers describe creating a custom 2.7 billion parameter model without using MatMul ([matrix multiplication]) that features similar performance to conventional large language models (LLMs). They also demonstrate running a 1.3 billion parameter model at 23.8 tokens per second on a GPU that was accelerated by a custom-programmed FPGA chip that uses about 13 watts of power (not counting the GPU’s power draw). The implication is that a more efficient FPGA “paves the way for the development of more efficient and hardware-friendly architectures,” they write.

  4. Enhancing Netflix Reliability with Service-Level Prioritized Load Shedding

    We implemented a concurrency limiter within PlayAPI that prioritizes user-initiated requests over prefetch requests without physically sharding the two request handlers. This mechanism uses the partitioning functionality of the open source Netflix/concurrency-limits Java library.

  5. Explaining generative language models to (almost) anyone