Skip to main content

Getting Started with Jupyter Notebooks

A Personal Workbench for Data Exploration

· 5 min read

Any real work with data starts with actually looking at it. Before reaching for a heavyweight analytics platform, the fastest way to get your hands on a dataset is a notebook running on your own machine. That personal workbench is where I do most of my exploring, and Jupyter is what powers it.

Getting Started with Jupyter Notebooks

What Startups Miss About Banks

Lessons from Both Sides of the Table

· 5 min read

I used to think banks were just slow. When I was pitching mobile payments to bankers years ago, I couldn't understand why they didn't see what seemed obvious to me. Working inside a bank, I've had to revisit some of those assumptions.

What Startups Miss About Banks

A New Phase Begins

From Startups to Community Banking

· 4 min read

I've spent years building tech startups and, at various points, pitching them to banks. Now I'm on the other side of that table, working as CTO of a community bank. The view is different from here, and I want to share what I'm learning along the way.

A New Phase Begins

Data Lakes and Choosing the Right System

Raw Data Storage and When to Use What

· 3 min read

In the previous posts, I covered transactional databases for real-time operations and data warehouses for historical analytics. Both work with structured data. But what happens when you need to store log files, images, sensor readings, or raw event streams? That's where data lakes come in, and understanding them has changed how I think about data architecture.

Data Lakes and Choosing the Right System

Data Warehouses

Turning Historical Data into Business Insights

· 3 min read

In the previous post, I looked at transactional databases that power real-time operations. But I've learned the hard way that running complex analytical queries against production databases is a bad idea. It slows down the application and puts operational data at risk. Data warehouses solve this by providing a separate system optimized for analysis rather than transactions.

Data Warehouses

Transactional Databases

The Engine Behind Every Application

· 3 min read

I've been thinking about data architecture lately, specifically how different systems serve different purposes. Every application I've built has relied on a transactional database somewhere in the stack. When a user updates their profile, places an order, or transfers money, a transactional database ensures the operation completes reliably. These systems, also called Online Transaction Processing (OLTP) databases, form the backbone of modern software.

Transactional Databases

The Software Development Life Cycle

How Teams Build Software from Idea to Deployment

· 4 min read

I've worked on projects where there was no clear process, and the chaos is memorable. Features get built before anyone agrees on requirements. Testing happens as an afterthought. Deployments become fire drills. The Software Development Life Cycle exists to prevent exactly this kind of mess.

The SDLC is a structured approach to building software that breaks the work into distinct phases. Each phase has a purpose, produces specific deliverables, and sets up the next phase for success. Understanding how these phases connect has helped me see where my work fits in the bigger picture.

The Software Development Life Cycle

Teaching My Kids to Code

How Python and Turtle Made Programming Click

· 2 min read

As a software developer and dad to two curious boys, I live in one world of code and another of LEGOs. Watching my kids snap together simple blocks to build increasingly complex creations, I can't help but see the similarity to how we build software from just a few basic "blocks" of code.

Teaching My Kids to Code