Skip to content

Commit bbad174

Browse files
committed
Major update, contact, about me, initial posts
1 parent cd8fbfc commit bbad174

File tree

53 files changed

+4242
-73
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+4242
-73
lines changed

content/about.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# About Me
2+
3+
Hi, I'm **Stephen Heindel**. I'm a software engineer with a broad range of experience across programming languages, platforms, and industries. Over the years, I've had the opportunity to work on projects spanning embedded systems, mobile apps, web development (both frontend and backend), and cloud infrastructure.
4+
5+
My work has taken me through diverse domains—from commercial and consumer software to defense applications. I'm comfortable working across the stack and often take on roles that require both technical depth and cross-domain thinking.
6+
7+
Currently, I serve as a **Principal Software Engineer** at **Logikos**, where I work with clients on a wide variety of challenging problems. I also lead a small software team as a **Senior Software Architect** at **ROGO**, managing a distributed, multi-platform software system. Additionally, I run a consulting business, **SCS LLC**, where I focus on complex systems involving IoT and cloud architecture.
8+
9+
Throughout my career, I've used many programming languages, including, but not limited to:
10+
11+
- C
12+
- C++
13+
- C#
14+
- Python
15+
- JavaScript
16+
- TypeScript
17+
- Java
18+
- Kotlin
19+
- VB
20+
- Bash
21+
- Assembly
22+
23+
A sampleing of frameworks and tools I’ve worked with include:
24+
25+
- React
26+
- Flutter
27+
- MicroPython
28+
- Qt
29+
- WPF
30+
- Xamarin
31+
- MvvmCross
32+
- React Native
33+
- FastAPI
34+
- OpenLayers
35+
- Vite
36+
- ROS
37+
38+
I also have experience across several cloud platforms, including Google Cloud, AWS, Firebase, Azure
39+
40+
In short, I enjoy solving problems—software just happens to be the tool I use most often to do that.

content/contact.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Contact
2+
3+
If you'd like to get in touch, feel free to reach out through any of the methods below:
4+
5+
- 📧 **Email:** [[email protected]](mailto:[email protected])
6+
- 📞 **Phone:** 567-938-0002
7+
- 💼 **LinkedIn:** [linkedin.com/in/stephen-heindel](https://www.linkedin.com/in/stephen-heindel/)
8+
- 💻 **GitHub** [github.com/sheindel]
9+
10+
I'm always open to discussing interesting software challenges, consulting opportunities, or collaborative projects.

content/posts/airtable-part-1.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
+++
2+
date = '2025-04-15T00:08:00-05:00'
3+
draft = false
4+
title = 'AirTable Deep Dive, Part 1: Introduction'
5+
description = ""
6+
slug = "at-deep-dive-1"
7+
authors = ["Stephen Heindel"]
8+
tags = ["airtable", "api"]
9+
categories = ["AirTable"]
10+
externalLink = ""
11+
series = ["AirTable Deep Dive"]
12+
+++
13+
14+
# What is AirTable?
15+
16+
Over the past 3 years, I have been regularly using and developing tooling around [AirTable](https://airtable.com/), a no-code/low code platform that provides a powerful Excel/Spreadsheet style experience, including very Excel-like [formulas](https://support.airtable.com/docs/formula-field-reference), a user friendly [lookup](https://support.airtable.com/v1/docs/lookup-field-overview) in place of SQL foreign keys, and [rollup](https://support.airtable.com/docs/rollup-field-overview) which has a hint of SQL join.
17+
18+
Despite some well known pains, including a very aggressive [API limit](https://support.airtable.com/docs/managing-api-call-limits-in-airtable), a [pricing](https://community.airtable.com/product-operations-69/airtable-pricing-updates-for-2023-are-a-slap-in-the-face-for-pro-users-40253) [change](https://www.reddit.com/r/Airtable/comments/15ziz1n/new_airtable_pricing_updates/) that took their large user base by surprise, and some very public bugs which have caused production downtimes for my own services, their product is truly unique and powerful with a wide variety of convenience features that appeal haevily to business interests. It integrates a [Forms](https://support.airtable.com/building-and-sharing-forms-in-airtable) feature that provides powerful and configurable data ingestion, nicely built customized auto-generated API documentation (located at https://airtable.com/{your_base_id}/api/docs), a surprisingly robust [permissions system](https://support.airtable.com/docs/airtable-permissions-overview), and a wide set of [batteries included integrations](https://www.airtable.com/integrations), to name a few of its more impressive features.
19+
20+
In this series, my goal is to dig into some specifics of using AirTable, both its primary data API as well as its metadata API, and to demonstrate some tooling I've developed overtime to improve the usability of AirTable as a both a data backend and a user-friendly CRM. I won't bother to repease descriptions and definitions that AirTable has already nicely defined in its [AirTable Basics](https://support.airtable.com/docs/introduction-to-airtable-basics) documentation, so if you're new to AirTable, I would recommend you read through that first. I will be using the terms `Base`, `Table`, `Record`, `Field`, and `View` with the assumption that you know what they mean.
21+
22+
Over the course of this series, I hope to address some common pain points with AirTable, including
23+
- Dynamic schema/SDK typing (TypeScript focus)
24+
- SDK formulas (Python focus)
25+
- Formula Dependency Decoupling
26+
- Automatic Dependency Graph Generation
27+
28+
If you have other input or questions about any of my work, or need AirTable consulting specifically or AirTable consulting in general, feel free to [reach out](/contact)

content/posts/airtable-part-2.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
+++
2+
date = '2025-04-15T00:08:00-05:00'
3+
draft = true
4+
title = 'AirTable Deep Dive, Part 2: APIs, Dynamic Metadata, '
5+
description = ""
6+
slug = "at-deep-dive-2"
7+
authors = ["Stephen Heindel"]
8+
tags = ["airtable", "api", "sdk", "library", "metadata"]
9+
categories = ["AirTable"]
10+
externalLink = ""
11+
series = ["AirTable"]
12+
+++
13+
14+
# A Developers perspective on AirTable
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
+++
2+
draft = true
3+
date = 2025-04-15T12:54:16-04:00
4+
title = ""
5+
description = ""
6+
slug = ""
7+
authors = []
8+
tags = []
9+
categories = []
10+
externalLink = ""
11+
series = []
12+
+++

hugo.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
baseurl = "https://blog.scsllc.pro"
2-
title = "sheindel dev blog"
2+
title = "Stephen Heindel's Blog"
33
theme = "hugo-coder"
44
languagecode = "en"
55
defaultcontentlanguage = "en"
@@ -13,8 +13,8 @@ style = "github-dark"
1313

1414
[params]
1515
author = "Stephen Heindel"
16-
info = "Software Architect"
17-
description = "Stephen Heindel's personal website"
16+
info = "Principal Software Engineer"
17+
description = "Stephen Heindel's blog"
1818
keywords = "blog,developer,personal"
1919
# avatarurl = "images/avatar.jpg"
2020

@@ -51,6 +51,10 @@ style = "github-dark"
5151
name = "Blog"
5252
weight = 1
5353
url = "posts/"
54+
[[menu.main]]
55+
name = "Contact"
56+
weight = 2
57+
url = "contact/"
5458
[[menu.main]]
5559
name = "About"
5660
weight = 2

public/404.html

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33

44
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
5-
<title>sheindel dev blog</title>
5+
<title>Stephen Heindel&#39;s Blog</title>
66
<meta charset="utf-8">
77
<meta name="viewport" content="width=device-width, initial-scale=1.0">
88
<meta name="color-scheme" content="light dark">
@@ -11,19 +11,19 @@
1111

1212

1313
<meta name="author" content="Stephen Heindel">
14-
<meta name="description" content="Stephen Heindel&#39;s personal website">
14+
<meta name="description" content="Stephen Heindel&#39;s blog">
1515
<meta name="keywords" content="blog,developer,personal">
1616

1717

1818

1919
<meta name="twitter:card" content="summary">
2020
<meta name="twitter:title" content="404 Page not found">
21-
<meta name="twitter:description" content="Stephen Heindel&#39;s personal website">
21+
<meta name="twitter:description" content="Stephen Heindel&#39;s blog">
2222

2323
<meta property="og:url" content="http://localhost:1313/404.html">
24-
<meta property="og:site_name" content="sheindel dev blog">
24+
<meta property="og:site_name" content="Stephen Heindel&#39;s Blog">
2525
<meta property="og:title" content="404 Page not found">
26-
<meta property="og:description" content="Stephen Heindel&#39;s personal website">
26+
<meta property="og:description" content="Stephen Heindel&#39;s blog">
2727
<meta property="og:locale" content="en">
2828
<meta property="og:type" content="website">
2929

@@ -99,7 +99,7 @@
9999
<section class="container">
100100

101101
<a class="navigation-title" href="http://localhost:1313/">
102-
sheindel dev blog
102+
Stephen Heindel&#39;s Blog
103103
</a>
104104

105105

@@ -118,6 +118,10 @@
118118
<a class="navigation-link " href="/about/">About</a>
119119
</li>
120120

121+
<li class="navigation-item">
122+
<a class="navigation-link " href="/contact/">Contact</a>
123+
</li>
124+
121125

122126

123127
</ul>

0 commit comments

Comments
 (0)