My first week as a self-employed engineer

Last week I wrote about my last day at Disney streaming. This week, it’s all about the first week of a new chapter. I’m not quite sure what I should call myself now. Independent? Freelance? A mix of both? Self-employed?

I’ll stick with self-employed for now. I’ll probably change it again later.

This first week, I focussed on my blog. I want to put more attention towards it to make it better on several fronts. One of those fronts was the layout and design of the website. I wasn’t quite happy with the old one but I defiitely wasn’t unhappy either. It’s just that I initially picked a nice-looking Wordpress and kind of rolled with it for a long time.

After a little bit of dabbling in Sketch I settled on a design I liked and I started implementing it as a wordpress template, which to my surpise only took me a little longer than a day. Guess I haven’t completely forgotten about my web-roots just yet.

If you go to now, you can already see my new site in action.

I’ll probably tweak and improve it over time but I’m happy with the state of my website for now.

The next order of business for me is to focus on updating Practical Core Data. I want to add some new sections to it, both on new stuff (like CloudKit sharing) but also old stuff (like using a child managed object context to build a simple create/update screen in SwiftUI). Most of Practical Core Data is UI framework agnostic but the time feels right to slowly start introducing more SwiftUI focussed examples, possibly along with just an example for UIKit in the sample code whenever possible.

Some folks have asked me whether I will provide any insights into async / await for Core Data and I will provide bits and pieces, but overall async / await does not impact Core Data in a very meaningful way. Core Data’s threading rules make it so we still need to use perform and performAndWait closures to safely run code in a concurrent context.

Anyway, I had a great first week as a self-employed engineer!

With that, I’d like to pass it off to you. How has your week been?

Cheers, Donny

Practical Core Data

Practical Core Data helps you learn Apple's Core Data framework without requiring any prior knowledge. You'll learn how to integrate Core Data in UIKit and SwiftUI applications. The book also covers data modeling, synchronizing your store with a custom backend or CloudKit, profiling and improving performance in a Core Data app, and using Core Data in unit tests.

By the end of the book, you'll know exactly how you can start using Core Data in modern applications.

Buy Practical Core Data for $34,99

Practical Combine

Practical Combine is a book that will help you learn Combine from scratch. You will learn about all aspects of Combine in a natural flow where you're eased into functional reactive programming with simple examples, and the difficulty gradually builds up to complicated integrations in later chapters.

Buy Practical Combine for $34,99

🎶 Currently on repeat 🎶

If you follow me on Twitter you probably know that I play guitar. I'm a huge music lover and want to share this with you. In this section I will share a new album that I've been enjoying a lot every week.

Beartooth - Below

This album was released today. It’s loud, it’s heavy, it’s fasts, it’s rock ’n roll. Great way to start the weekend!

Other content that I really want to share with you

Swift Concurrency comes with many features. Async / await is probably the one that immediately comes to mind for most people. As I was reading through the concurrency proposals last week, I learned about task local values and how they can help debugging, profiling, and tracing concurrent much more convenient. I figured it was worth a post on my blog since tracking a sequence of async tasks that are all happening at the same time is a problem I’ve had to solve in the past and it was nowhere near as elegant is this is.

An article by Donny Wals

The ability to analyze network traffic in Xcode or Instruments has been on my wishlist for a while now and this year we finally got it. Unfortunately I have not been able to mess around with it just yet, but this post by Michael Abadi makes me very excited to give it a go real soon!

An article by Michael Abadi