Weekly note ✏️
Whiteboarding or live coding—call it what you will—is a fundamental part of any developer's job interview. Whether you’re the one conducting the interview or the one being assessed, chances are you’ve encountered it at some point. Some developers enjoy the challenge, while others dread it, but it remains an unavoidable step in many hiring processes.
Recently, while discussing the state of the job market and interview processes at a Big Tech company, a Lead Developer responsible for technical interviews shared an interesting observation. After evaluating over 100 developers, he noticed a common trend: many candidates approach this stage with a mindset of solving the task as quickly and correctly as possible. But in reality, that’s not the primary goal.
What truly matters is the process—how you structure your code, think through problems, make decisions, and handle obstacles. Whether your solution is perfect or not is secondary.
Think of it like a grammar test: aiming for 100% correctness is great, but don’t let it become a source of overwhelming stress. Interviewers are more interested in how you approach the problem than in whether you get every answer right.
Connect with the "Those Who Swift" team - Justas Markus & Anton Gubarenko 👋
Sponsor 🤝
Forget about Ruby and Fastlane installation issues!
Discover Codemagic CLI tools — the free, open-source Fastlane alternative for automating iOS builds, code signing and publishing.
Swift Around the Web 🌐
Yielding and Debouncing in Swift Concurrency
Majid Jabrayilov delves into task yielding and debouncing within Swift's concurrency model. He explains how to implement debouncing using available methods to manage rapid input events, and discusses task yielding to prevent long-running synchronous functions from blocking the main thread. Code examples illustrate these concepts in practical scenarios.
Read more.📍
Enable Multi-Finger Tap Gestures in SwiftUI
SwiftUI doesn't natively support multi-finger tap gestures, but you can implement them by integrating UIKit's gesture recognizers. This approach allows detection of taps involving multiple fingers, enhancing user interaction capabilities in your SwiftUI applications.
Read more.📍
Coding 👨💻
Adjust the Intensity of Colors in SwiftUI Views
Learn how to modify color brightness in SwiftUI using the brightness(_:)
modifier. This guide demonstrates creating gradients by adjusting brightness values, allowing colors to transition from their original shade to white or black.
Read more.📍
How to use SceneDelegate in SwiftUI
Explore how to integrate SceneDelegate
into your SwiftUI applications to manage app lifecycle events and handle specific system interactions, and use UIApplicationDelegate
, UIWindowSceneDelegate
to enhance your app's functionality.
Read more.📍
Apple News 🍏
iPhone 16e - Latest iPhone. Greatest price.
Apple's all-new iPhone 16e joins the lineup as a cheaper alternative to the iPhone 16.
Read more.📍
New Requirement for Apps on the App Store in the EU
As of February 18, 2025, apps without verified trader status have been removed from the App Store in the European Union (EU). To comply with the Digital Services Act, Apple Developer Program Account Holders or Admins must enter and verify their trader status in App Store Connect. This ensures that apps meet EU regulations regarding trader information disclosure.
Read more.📍
New Features for APNs Token Authentication
Apple has introduced enhanced security options for Apple Push Notification service (APNs) token authentication keys. Developers can now create team-scoped keys, restricting usage to development or production environments, and topic-specific keys, associating each key with a specific bundle ID for improved key management.
Read more.📍
Design 🎨
NSAttributedString: Formatting Rich Text
Learn how to use NSAttributedString
in Swift to style text with different fonts, colors, and attributes. The guide covers creating and modifying attributed strings, applying partial styling, and using essential attributes effectively.
Read more.📍
Other cool stuff 🧰
Introducing gRPC Swift 2
George Barnett and Gus Cairo introduce gRPC Swift 2, a major update that brings first-class concurrency support and more expressive APIs for a seamless developer experience. This release leverages Swift's modern concurrency model, offering flexible APIs, pluggable transports, and smart client features like load balancing and automatic retries.
Read more.📍
Creating CarPlay apps within a SwiftUI app lifecycle
Ever wonder about how to integrate a CarPlay functionality into a SwiftUI app? Follow these step-by-step instructions, code examples, and best practices for building CarPlay-compatible apps that deliver a seamless in-car experience.
Read more.📍
AI 🤖
Ollama: Running LLMs Locally on Your Mac
Mattt, after a long hiatus of NSHipster blog, introduces Ollama, a tool for running large language models (LLMs) locally on Macs. It simplifies managing AI models, supports privacy, and enables low-latency tasks like text generation and semantic search. The article also highlights the Ollama Swift package for integrating LLMs into macOS apps, showcasing practical examples like building a RAG system and renaming PDFs.
Read more.📍
Tutorials 📒
Extracting structured data from PDFs using Gemini 2.0 and Genkit
Peter Friese explores tools like Gemini and GenKit for working with structured data in PDFs. The post demonstrates how to extract, organize, and process PDF data efficiently, offering practical examples and tips for developers handling document-based workflows.
Read more.📍
Enabling Interaction with Table View in SwiftUI
This guide explains how to enable user interaction with Table
views in SwiftUI, such as handling row selections and adding actions. It provides step-by-step instructions and code examples to help developers create dynamic and interactive tables for their apps.
Read more.📍
Video 🎥
Animated Side Menu in SwiftUI
Some argue that sliding menus are a poor UI pattern, yet many apps successfully balance focus on main content with seamless navigation. Join Sergio as he dives into creating a custom sliding menu, complete with interactive items and animations.
Watch now.📍
Friends
Donny Walls is offering 15% off his practical bundle of all three books to our community members.
> What truly matters is the process—how you structure your code, think through problems, make decisions, and handle obstacles. Whether your solution is perfect or not is secondary.
> "Whether your solution is perfect or not is secondary."
People want to tell themselves that this is case, but in reality they're lying to themselves. The interviewers want to see the solution coded like they would code it, and they want to see it coded correctly and performantly.
As the founder and founding engineer of multiple successful startups, lead engineer at two top silicon valley companies, and having interviewed / been interviewed countless times, we only kid ourselves in thinking we're being more holistic about it.
"Solve the problem, correctly, speedily and in a similar way that I would solve it, or else you're rejected"
Another bad interviewer sign is "here's a contrived problem to solve that you would probably never encounter. solve it or else you're rejected."
It boils down to both arrogance and ignorance.
We've all read the stories of creators of popular 3rd party libraries being interviewed and rejected by companies using the creator's library.
Same can be said about the job descriptions of most of these developer roles; ridiculous. We've read stories of JDs containing requirements for "X years of experience in this library" when "this library" has only been around for a fraction of that time.