Categories
Random thoughts

Published eBook: Lead Developer

On march 18 I self published my first book. Lead Developer. And I have been getting some questions on what my proces was.

You can find more info on my book here.

Lead Developer: best practices and tips for lead software developers, by Jeroen Leenarts.

It is really simple. I used LeanPub and just started writing. The benefit of using their platform is that you can write in MarkDown and they take care of the typesetting and making sure you end up with an PDF, ePub and Mobi output.

I wrote the book, which at first launch was a little over 10.000 words in about 3 months time. Since I already had a good set of notes to begin with I knew I had enough content. The first thing I did was create a preliminary table of contents. And based on that I started writing. During the writing I discovered I wanted to group things into three categories. Team, Business and you. Since I wrote everything in Markdown it was very easy to adjust.

I also wanted some graphical content and a book cover. For that I asked a creative friend to draw up some avatars. I really like the results Linda Udding created. And we also made an agreement on what I will pay to her for her work. Since this is a first book, we both did not know how well it would work out. So we agreed on a profit cut until we reach a level of payment that is in line with market standard for the amount of work she did. Since I already had my book’s content divided into three parts by that time it was easy to convert that format into a creative brief for Linda. She was able to create the work in no time at all.

When I set out to write this book I planned on doing it just for the fun of it. If I help on person, great. If I sell no copies at all, that’s great as well. My main goals with writing the book are:

  • Structure my own learnings on the topic of being a lead software developer to become a better one myself.
  • Learn about what it takes to write something resembling a book.
  • Have something meaningful on offer when someone asks how they can support my online activities. Buy my book sounds way better to me compared to “just give me some money”.
  • Be able to put “published book author” on my resume.
  • Learn about what it takes to market a product to some level of succes.

Any income gained from this book is a happy coincidence. And, at the time of this writing I sold over 60 copies and I am looking into ways to market my book more. I hope to hit 100 soon. But who knows, it all depends on wether I can make online appearances, get my book linked more by others. Advice is still welcome at this stage, I have not found “the best way” to do this on a shoestring budget.

Categories
Random thoughts

iOS Core Data Workshop

With the help of Donny Wals I am organizing a Core Data workshop on April 22 and April 29. We’ve chosen times that are convenient for multiple timezones around the world.

More info here: https://appforce1.net/coredata/

Order your ticket

We’ll build a simple app that features everything you might need in a moderately complex application. We’ll start by adding Core Data to an app and setting up a very simple form to add data to a store. After that, we’ll set up a list in SwiftUI to display data. Next, we’ll add an edit screen. The next step will be to build a filter screen.

Once the filter screen is added, we’ll focus a bit on architecture. Instead of using SwiftUI’s built-in features, we’re going to build a view model that holds a fetched results controller, and we’ll use this to drive a SwiftUI view by leveraging Combine.

The last step will be to write an importer that uses a background managed object context to import a bunch of sample data for our app. We’ll use a set of JSON data so it closely mimics a scenario where you load data from the web.

Throughout the workshop we’ll not only use SwiftUI, but also bits and pieces of Combine. Don’t worry if you’re not familiar with Combine yet. You’ll learn some of Combine’s core principles as we go to make sure you know and understand just enough to leverage it in the workshop.

Your trainer will be Donny Wals, author of Practical Core Data.

  • Duration: 4 hours
  • Capacity: 5–15 people
  • Location: Online
  • Programming Language: Swift, latest Xcode
  • Choose your date and time when buying your ticket:
    • April 22, 2021 / 09:00 AM – 01:00 PM Pacific Time
    • April 29, 2021 / 13:00 – 17:00 Central European Summer Time

About Donny Wals

Donny has been practical experience with Core Data, Combine and teaching. Through his book Doony was able to share his knowledge to a wider audience. Donny is an expert on Core Data. He has written one of the best received recent books on the topic of Core Data. Donny has also written an amazing book about the Combine framework called Practical Combine.

Categories
Random thoughts

AppForce1: Special 1

Antoine is an iOS developer with a good following on Twitter. He often helps CocoaHeadsNL when he can. He works for WeTransfer, writes on his blog and recently launched version 3 of RocketSim.

Categories
Podcast Random thoughts

Podcasting gear

That didn’t take very long. After publishing my first episode I got a question almost right away on what I used to record my show.

Here’s the list:

I took a while picking and selecting what to get. I initially wanted a Audio-Technica ATR2100x-USB but it has been unavailable everywhere for a couple of weeks now. So I just bit the bullet and went for a higher spec setup. I specifically went for a cardioid dynamic microphone and not a condenser. I wanted more of that broadcast sound and at the same time avoid picking up unwanted background noise as much as possible. A condenser, or so I read, picks up way more background noise.

Marco Arment’s microphone blog post was very helpful in getting to know some basics and find a good microphone amp suggestion.

For hosting I use Buzzsprout.

All product links are affiliate links.

Categories
Podcast Random thoughts

AppForce1: First episode is live

Categories
Podcast Random thoughts

AppForce1 podcast feed availability

My new podcast is now listed on Apple Podcasts as well. This means you can now find my podcast in your favourite podcast player app by searching for “AppForce1” and get my first episode as soon as it is available next week.

Categories
Podcast Random thoughts

AppForce1 podcast

I’m working on launching my new podcast. Working title “AppeForce1 podcast”.
Just playing with editing and sound bites a little bit. Here’s an initial promo.

Categories
Random thoughts Swift

Tuist.io

At the Dutch CocoaHeads meetup in september I presented about Tuist.

Our path to micro frameworks using Tuis.io

In this video I show how we at Achmea changed the architecture of our app to use µ frameworks with Tuist.io. I demonstrates how to create a sample app and shows the new structure of the ‘Even Appen’ app.

Categories
Random thoughts Swift

Github Actions and MacOS based Actions charged at 10x

Something I forgot to mention on my previous post on GitHub Actions.

GitHub charges 10 build minutes for each MacOS build minute. Be aware of this when working with GitHub Actions for your Mac based builds. It is probably worth it to try and off load as much work as possible to a Linux based image.

SwiftLint and other code analysis is a perfect example of examples of work to be offloaded to a Linux image.

Categories
Random thoughts

Start of the Corona crisis

This won’t be a technical write-up. Just some thoughts on current events.

I’m sitting here in my bed. Not able to sleep. So much has happened. A lot went well. I am very lucky that my job as an iOS developer allows me to work remote so easily. It has been a crazy two weeks. The Netherlands went from business as usual to Corona crisis mode. In hindsight, the writing was on the wall. But man, what an experience it has been.

My day job switched to working fully remote. And things have transitioned relatively smooth. We are in the middle of planning the next quarter, coding works fine. Fortunatly we switched to a fully cloud based Azure DevOps some time last year. Also the team is itself performing admirably. My manager has directed us to develop a few contingency plans if/when sickness strikes our team.

A training I organized with Jon Reid I switched to fully remote last Sunday. It was supposed to take place in Amsterdam. We made our decision, only hours later the Dutch government announced severe measures in attempt to slow the spread of Corona. Jon was an excellent online host. He also informed me he arrived home safely back home in the US. I hope to do this again some day.

And then my wife. A teacher. She was forced to switch to working remote with her kids. From being hands-on to a laptop worker like me. She’s doing it. She makes me proud with her sheer determination to do what is best for her class within the boundaries of the current regulations.

I love working remote myself. But it has been a rough week. Everyone always has this virus on their mind. And not being able to do the regular things especially with and for my kids is hard. Especially when I see how much my oldest daughter needs her schoolwork as an outlet for the boundless energy she always has. Kids have lots of energy, but my oldest, she is ready to burst if she can not channel her energy on something that challenges her mind.

Beautiful things happen as well inspired by the social limitations we have to accept. Last Wednesday the first ever CocoaHeadsNL online meetup was a success. Over 90 people were able to forget about the current situation and enjoy an online CocoaHeadsNL meetup presented by Antoinne van der Lee. I think it went well. People really appreciated the livestream. Next month we probably can not do a live meetup yet, so if all goes well we will do another online edition.

It is unsure how long this social distancing will last. It sucks. But I believe in the reasoning behind it. I do not want to see the same thing happen anywhere like they are currently in Italy. I cried when I read the news about the choices health care workers have to make in northern Italy.

If anyone in my social circle needs some help, either CocoaHead, colleague, friend or neighbor… I hope they have the courage to reach out.

Take care of each other. We’ll see each other when this whole thing is behind us.