Dubman.com

About Me

Jonathan Dubman

Hi, I’m Jonathan. Here’s a quick overview of my engineering career. Check out my Narratives for a much deeper dive.

Jonathan Dubman, App + Product Engineer, Apple Platforms

I’m an engineer with a strong product orientation, backed by over a decade of experience in web and mobile development. My journey with JavaScript, Node.JS and AWS began in 2011, React in 2015, React Native in 2016, TypeScript in 2017, and today, Swift and SwiftUI. Though I worked a decade at Microsoft, my true passion is engineering on Apple platforms.

My background

I got off to an an early start. I started coding at age 9, in C, on UNIX. At 13 I cofounded a software company that caught the attention of Steve Jobs.

The core of my engineering career since then has been designing and building interactive desktop, web and mobile apps, plus back-end support for them.

I’ve also worked with Linux, AWS, Python, Mongo DB and various back-end technologies. I used to call myself a Full Stack Engineer, but I’m now going with App + Product Engineer, which best reflects today’s focus.

Leadership is a recurring theme in my career. I’ve served as tech lead, instructor at Yale, startup CTO, and community leader. I’m good with people, products, and code.

My UC Berkeley degree isn’t technically in CS; it’s in Applied Math with a CS theory emphasis. Fatefully, this string mismatch of majors caused me to be auto-filtered out of Apple’s campus recruiting back in the day. I got recruited to build Mac apps for Microsoft instead.

Engineering-adjacent roles

I’ve also had several “engineering-adjacent” roles starting with P and ending with Manager: Program Manager, Product Manager, Project Manager, all quite different. I learned something from each of these that helped prepare me for future leadership roles.

What I enjoy the most today, though, is the hands-on engineering work of building apps with today’s fantastic tools and frameworks, primarily for Apple platforms, and also for the web.

A parallel career, civic volunteer

Between and alongside these roles, I donated about 15 years of volunteer work - a parallel, unpaid career in state and regional transportation policy. I became an expert in another field, got invited to sit on city and state committees and work with the top levels of state government on a $5 billion project.

This may seem odd for a software engineer, but it was mostly about the new bridge connecting Seattle, where I live, to Microsoft, where I used to work. This experience built many more transferable skills, in addition to some new bridges.

Teaching and mentoring

I also put in about 5 years teaching math, programming and software engineering, from junior high level, when I was still a teenager myself, to Yale undergrads, after phase 1 of the Microsoft career. I was invited to return to every teaching job I’ve held. Teaching actually taught me a great deal, even more than I learned when I was a student.

I have extensive communications experience - media, journalism, writing and public speaking. I’m the sort of person who takes the time to write two dozen long-form narratives that nobody asked for about my engineering career.

Preferences

I prefer well-functioning organizations that align with my own prosocial and environmental values. There are some that I will actively avoid, no matter what jobs, salaries and benefits are on offer, and no matter how awesome the recruiter, hiring manager, project or team may be.

I prefer roles that best support the long-term arc of my career, teams that can make use of my many skills, and coworkers who have to teach me.

What I’m most passionate about now is app development using Swift / SwiftUI on Apple platforms. I’m also well qualified for web dev roles with React, and app development roles involving React Native. If you are using or considering React Native, I have a lot of thoughts and experiences to share.

I’ve been an Apple enthusiast since 8th grade. I also love Linux, though I’m frankly indifferent to Android. I worked at Microsoft for about a decade, but half of that was on Mac apps. I’ve been actively avoiding Windows for over a decade now.

C change

There was a time, years ago, when I loved coding in C. At Microsoft, I switched first to C++ and then C#, in succession.

That era ended years ago. After programming in Python, TypeScript and Swift, I honestly never want to use any of those C variants again. Objective-C was the only choice in the early days with iOS, and I will grant it has some useful concepts and constructs, but I have disliked that language since the day I first saw it in 1989, and I’m thrilled to see it fade with the rise of Swift.

Mastering Swift and SwiftUI

I’m currently enamored with Swift and SwiftUI, and on the road to mastering those technologies.

Over the years I’ve gotten very good at developing apps with React Native. The approach I developed to build apps with TypeScript and React Native evolved organically to be more and more like SwiftUI, in the years just before SwiftUI came on the scene. When SwiftUI came out, I thought, this is brilliant, the framework of my dreams. It feels liberating to be released from all the constraints that come along with the benefits of React Native.

I believe Apple will continually create and then dominate new product categories in personal technology, just as they did with iPhone in 2007. SwiftUI will be the preferred way to create people-centred apps and experiences that span across all these devices.

When I was 13, I totally mastered the Apple technology of that time. I have much more life experience behind me now, but I am fundamentally the same person. The activity that brings me the kind of joy in 2022 that drew me to computing in the first place is creating apps with Swift and SwiftUI, so that’s what I’m going to do next.