Design-first software engineering: Craft – with Balint Orosz
Design-first software engineering: Craft – with Balint OroszBalint Orosz, my brother and founder of Craft, shares his journey from startup to award-winning app, discussing software design, frontend vs. backend priorities, and local-first computing.
Stream the Latest EpisodeListen and watch now on YouTube, Apple and Spotify. See the episode transcript at the top of this page, and a summary at the bottom. Brought to You By
— In This EpisodeNot many people know that I have a brother: Balint Orosz. Balint is also in tech, but in many ways, is the opposite of me. While I prefer working on backend and business logic, he always thrived in designing and building UIs. While I opted to work at more established companies, he struck out on his own and started his startup, Distinction. And yet, our professional paths have crossed several times: at one point in time I accepted an offer to join Skyscanner as a Principal iOS Engineer – and as part of the negotiation, I added a clause to my contrac that I will not report directly or indirectly to the Head of Mobile: who happened to be my brother, thanks to Skyscanner acquiring his startup the same month that Skyscanner made an offer to hire me. Today, Balint is the founder and CEO of Craft, a beloved text editor known for its user-friendly interface and sleek design – an app that Apple awarded the prestigious Mac App of the Year in 2021. In our conversation, we explore how Balint approaches building opinionated software with an intense focus on user experience. We discuss the lessons he learned from his time building Distinction and working at Skyscanner that have shaped his approach to Craft and its development. In this episode, we discuss:
TakeawaysDesign-focused engineers find it harder to fit in. Engineers who focus on backend and distributed systems can usually verbalize their impact clearer, and could see faster career growth – including getting into leadership positions. This creates a reinforcing cycle: as most engineering executives have a backend engineering background: they will recognize and reward backend contributions more. Balint didn’t like how he didn’t “fit in” as an engineer focused on design and UI: but he just kept building things he believed in – and years later, building up that “design muscle” helps him build products that backend-focused engineers might struggle in putting together. Amazing companies cannot have a single engineering culture. Balint observed how every standout company that has a single engineering culture inherently biases towards either a backend-heavy engineering culture (e.g. Google, Amazon) or a UI-heavy one (Amazon). For a company to be truly standout – more so than these Big Tech giants – it needs to have several engineering cultures: prioritizing both backend and UI excellence. This is what Craft is aiming to do internally. To build something better than most other products: you might need to take a different approach. Craft does not use Apple’s UI components: they don’t use SwiftUI or Autolayout – something that 95% or more of iOS apps all take advantage of. Craft, instead, built their own components from scratch, and came up with their own layout and animations system. This is a lot more work at first: but it’s how Craft can do smooth animations that most apps are unable to do so – and it’s a reason engineers at Apple have asked the team “how are you able to do such a smooth animation on the navigation bar?” (The native iOS navigation bar cannot be animated like Craft does it) Craft can do all this thanks to building and maintaining their own components. It’s simpler to do than most would assume: in the episode, we look at actual code. A shared codebase is an underrated advantage for speed, consistency and efficiency. Craft has a total of 4 engineers building the respective apps for:
They can do this, because it’s a single codebase! A single codebase also means that all features built on one platform immediately work on all others. The Pragmatic Engineer deepdives relevant for this episodeTimestamps(00:00) Intro (02:13) What it’s like being a UX-focused founder (09:00) Why it was hard to gain recognition at Skyscanner (13:12) Takeaways from Skyscanner that Balint brought to Craft (16:50) How frameworks work and why they aren’t always a good fit (20:35) An explanation of iOS Auto Layout and its pros and cons (23:13) Why Balint doesn’t use Auto Layout (24:23) Why Craft has one code base (27:46) Craft’s unique toolbar features and a behind the scenes peek at the code (33:15) Why frontend engineers have fear around customization (37:11) How Craft’s design system differs from most companies (42:33) Behaviors and elements Craft uses rather than having a system for everything (44:12) The back and frontend architecture in building personal software (48:11) Shifting beliefs in personal computing (50:15) The challenges faced with operating system updates (50:48) The resurgence of local-first software (52:31) The value of opinionated software for consumers (55:30) Why Craft’s focus is on the user’s emotional experience (56:50) The size of Craft’s engineering department and platform teams (59:20) Why Craft moves faster with smaller teams (1:01:26) Balint’s advice for frontend engineers looking to demonstrate value (1:04:35) Balint’s breakthroughs using GenAI (1:07:50) Why Balint still writes code (1:09:44) Rapid fire round A summary of the conversationDesign-first engineering: less recognition?
Engineering culture at Craft
Team structure
Architecture choices
Principles for personal software
A local-first approach
Where to find Balint Orosz: • X: https://x.com/balintorosz • LinkedIn: https://www.linkedin.com/in/balintorosz/ Mentions during the episode: • Craft: https://www.craft.do/ • Skyscanner: https://www.skyscanner.com/ • Flash: https://en.wikipedia.org/wiki/Adobe_Flash • Shader: https://en.wikipedia.org/wiki/Shader • Understanding Auto Layout: https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/index.html • Mac Catalyst: https://developer.apple.com/mac-catalyst/ • Apple M1: https://en.wikipedia.org/wiki/Apple_M1 • Elasticsearch: https://en.wikipedia.org/wiki/Elasticsearch • The Cloud Is a Prison. Can the Local-First Software Movement Set Us Free?: https://www.wired.com/story/the-cloud-is-a-prison-can-the-local-first-software-movement-set-us-free/ • Local-first software: https://news.ycombinator.com/item?id=31594613 • Visual Studio Code: https://code.visualstudio.com/ • ChatGPT 01 model: https://openai.com/o1/ • PencilKit: https://developer.apple.com/documentation/pencilkit • Swift: https://www.swift.org/ • Objective-C: https://en.wikipedia.org/wiki/Objective-C# • Tailwind CSS: https://tailwindcss.com/ • The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers: https://www.amazon.com/Hard-Thing-About-Things-Building/dp/0062273205 — Production and marketing by Pen Name. For inquiries about sponsoring the podcast, email podcast@pragmaticengineer.com. You’re on the free list for The Pragmatic Engineer. For the full experience, become a paying subscriber. Many readers expense this newsletter within their company’s training/learning/development budget. This post is public, so feel free to share and forward it. If you enjoyed this post, you might enjoy my book, The Software Engineer's Guidebook. Here is what Tanya Reilly, senior principal engineer and author of The Staff Engineer's Path said about it:
|
Comments
Post a Comment