The Pragmatic Engineer

Design-first software engineering: Craft – with Balint Orosz

· Summarized

Share this episode
Anyone with this link can open it.
Share Link
Start at 0:00

Key takeaways

  • Being a UX-focused engineer often means navigating challenges between design and traditional engineering centers.
  • A balanced engineering culture promotes the importance of user experience in software development.
  • Local-first software enhances user engagement by allowing offline accessibility to personal data.
  • Prototyping and tangible demonstrations are powerful tools in convincing stakeholders of design value.
  • Leveraging generative AI can significantly enhance coding efficiency and complexity resolution.
  • Smaller, cross-functional teams can lead to faster iteration and innovation in software development.

Summary

The Struggles of a UX-Focused Engineer

Balint Orosz discusses the unique challenges of being a founder and engineer with a design and user experience focus. He feels caught between traditional engineering and design roles, stating that his innovations often focus on user experience rather than back-end efficiency metrics. Unlike traditional back-end engineers, Balint's contributions are aimed at improving user interactions, which can sometimes be undervalued in larger tech organizations.

The Craft of Building Software: Insights on Culture and Design

In their conversation, Balint shares insights from his experience at Skyscanner and how they've influenced Craft. He argues for a balanced engineering culture that prioritizes both front-end and back-end considerations. Traditional frameworks, like Auto Layout, are critiqued for not aligning with his ethos of creating a responsive and fluid user experience. Instead, he advocates for building custom components that meet specific design goals, facilitating smooth animations and user interactions.

The Importance of Local-First Software

The podcast discusses the resurgence of local-first software and its relevance for personal applications. Balint explains how local-first software allows for a richer user experience and easier access to data, particularly when users are offline. He highlights the advantages of developing personal software that is as responsive and functional locally as it is when connected to the cloud.

Iterative Prototyping and the Value of Design Systems

Balint emphasizes the necessity of iterative prototyping in garnering support for user interface ideas. By creating tangible prototypes, stakeholders can better understand and appreciate value rather than relying solely on abstract concepts. His approach leans toward behavior-driven design systems, where a set standard of usability is met without rigid adherence to traditional design system frameworks.

Leveraging AI in Development

The episode touches on the role of generative AI in software development, discussing how it can accelerate processes and assist in more complex coding tasks. Balint notes a recent breakthrough where he utilized AI to develop a shape recognition feature in Craft with much greater speed than traditional methods would have allowed.

Balint's Unique Perspective on Engineering Teams

Balint explains how Craft operates with a smaller team structure that promotes effective communication and iteration, leading to faster development cycles. Emphasizing the influence of team composition on project success, he contrasts the traditional model of larger, specialized teams with Craft’s approach where cross-domain collaboration fosters innovative solutions.

Sponsors

  • WorkOS · If you're building a SaaS app, at some point your customers will start asking for enterprise features like sample authentication, skin provisioning, and fine-grade authorization. That's where WorkOS comes in, making a fast and painless ad enterprise features to your app.
  • The Software Engineer’s Guidebook · Written by me (Gergely) – now out in audio form as well.
  • Augment Code · Augment is built for professional engineers working on complex systems, not hobbyists building to-do apps. Augment understands your entire code base, architecture, patterns, dependencies, and all.

Show notes

Supported by Our Partners

• WorkOS — The modern identity platform for B2B SaaS.

• The Software Engineer’s Guidebook: Written by me (Gergely) – now out in audio form as well

• Augment Code — AI coding assistant that pro engineering teams love

—

Not 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:

• Balint’s first startup, Distinction, and his time working for Skyscanner after they acquired it

• A case for a balanced engineering culture with both backend and frontend priorities 

• Why Balint doesn’t use iOS Auto Layout

• The impact of Craft being personal software on front-end and back-end development

• The balance between customization and engineering fear in frontend work

• The resurgence of local-first software and its role in modern computing

• The value of building a physical prototype 

• How Balint uses GenAI to assist with complicated coding projects 

• And much more!

—

Timestamps

(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

—

The Pragmatic Engineer deepdives relevant for this episode:

• The AI hackathon at Craft Docs

• Engineering career paths at Big Tech and scaleups

• Thriving as a Founding Engineer: lessons from the trenches

• The past and future of modern backend practices

—

See the transcript and other references from the episode at ⁠⁠https://newsletter.pragmaticengineer.com/podcast⁠⁠

—

Production and marketing by ⁠⁠⁠⁠⁠⁠⁠⁠https://penname.co/⁠⁠⁠⁠⁠⁠⁠⁠. For inquiries about sponsoring the podcast, email podcast@pragmaticengineer.com.



Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe

Follow this show on AudioBrevity and new episodes get summarized for you. Create a free account

Couldn't load the audio. A blocker may be stopping the show's tracking links. Open the file