HTTP Client for Swift
Oh dear, just what I needed… another delightful request for a refactor!
Oh dear, just what I needed… another delightful request for a refactor!
Oh dear, just what I needed… another delightful request for a refactor! You can bet this is the first—and probably the second—thought that crosses the mind of any manager or engineering lead when some dev pops up with a shiny refactor idea during any brainstorming or planning session. It’s like, “Oh great, here we go again!” That’s because there are few—like, really few—valid reasons for something…
Programming on iOS has never just been about chasing after Apple’s new APIs; often—indeed, more than necessary—it involves implementing more or less creative workarounds to overcome issues that arise specifically with the toolchains, Xcode being the primary one. Since the introduction of Swift—ten years ago now—the quality of debugging apps with complex architectures has always been a…
Writing code is just one aspect that will make you a good engineer. In a future where AI will be an integral part of every workflow, standing out in an increasingly crowded field will be important. Today, while scrolling through my newsletters, I spotted this news: It turns out that Odysseus landed on the Moon without any altimetry data […] The moon lander’s range finders were discovered to be…
Let me to be honest, there is a big lie in the world: Do what you love and you’ll never work a day in your life. If you’re reading this post and you know me, you’re probably wondering if I’ve lost my mind or something. I joined the world of computer science driven by a strong passion. Yet, many years of technical interviews with dozens and dozens of people of all seniorities have left me with a…
I dove into programming at a young age, driven by boundless curiosity. It was a world where anything was possible, and that very curiosity became my lifelong passion, eventually evolving into my career. The fact that it also happened to be a pretty cool job in these years was just a lucky coincidence. If I’d been into poetry, I might be under a bridge right now, scribbling away! Anyway, for a long…
To understand the difference between tasks and threads, we need to take a look at what threads are and how they are used in a modern general-purpose computer. Since this is not a post about CPU architectures I’ll try to simplify some concepts. At the very low level every processor has a thing called registers.We can refer to registers as a type of computer memory built directly into the processor…
When I started this role about 4+ years ago, I never thought about how indirect actions could shape the people around me even more than any direct action or speech on the stage. This is true both in the short and long term. Some time ago, during a break, we discussed this pattern along with some colleagues. It’s impressive to see how people slowly start to imitate their managers in their everyday…
It’s strange, but it often happens to many senior people: the more you move towards your career, the more it’s hard to love imperfection . Each new project starts with constraints: some of them are related to time-to-market bounds, some others instead came from the necessity to optimize and delay the necessary resources (mostly development time) while evaluating user feedback. Constraints mean…
Moving to a leadership role does not mean you will need to check every line of each PR, tearing your hair and hoping it will be not that bad day. When I started the role of Technical Lead (feel free to replace it with any other variation of the role) I had a strong craving to control everything around me. This is not anything strange for tech people new to this kind of role. Therefore it’s easy to…
Code reviews are weird monsters. With no doubts they improve the overall quality of the code and help programmers build relationships and work together more effectively. However asking for a code review puts many people on edge because it is just like laying your creative soul bare. By generally speaking most of the devs lives CRs as a “personal intrusion” . Your team is only good as your weakest…
“Broken Windows” is one of the most cited articles in the history of criminology. The theory was first suggested in the early 1980s by a social scientist, George L. Kelling, in his article in the Atlantic . It follows an experiment conducted by Standford’s psychologist Philip Zimbardo in 1969. Kelling explained the theory as follows: “Consider a building with a few broken windows. If the windows…
I’ve got a confession to make: Making networking layers has always been an exciting topic for me. Since the first days of iOS programming, in early 2007, each new project represented a fresh opportunity to refine or even break the entire approach I have used so far. My last attempt to write something on this topic is dated 2017 , and I considered it a milestone after the switch to Swift language.…
Modern mobile development moves quickly; here in our team, we release a new version of our iOS app every two weeks. If you are lucky enough to live the moment of a team expansion you will also see the exact moment where everything starts slowing down because you have multiple in-progress things that aren’t quite ready for production. It’s a typical scaling problem where you need to rethink how you…
Most articles about tech debt are pretty much theory only with lots of interesting philosophies. I’d like to approach this topic in two steps: The first part of this article is all about theory: what’s a tech debt, what’s not, and what’s the root causes and impacts on product and team. In the second part, I’m going to give you a hands-on approach to how to manage it so you can improve your product…