Last time I logged into my WordPress instance to update WordPress and its plugins, something went wrong and I ended up losing access to WordPress, which I promptly resolved in the AWS Lightsail console by re-launching a clone of the instance from a backup (go backups!). All was good until a few months later when […]
I’ll be the first to admit that the most fun part about being a software engineer is the act of writing code. I can’t think of any other trade where the feedback loop between trying something new (a few keystrokes) and seeing if it worked (yet another keystroke) is so fast. Each compile-run cycle is […]
This morning I got Meta’s LLaMA model running on my Apple Silicon (M2 Pro) MacBook Pro in under an hour using Simon Wilson’s llm CLI utility as well as its llama.cpp plugin. I spent most of that hour wrestling with my Python environment, so if you have that already set up, it would take you […]
Happy 2024! 2023 was filled to the brim for me. Second year at Meadow, in which we hired the rest of the first engineering team. We built and launched Meadow’s second product, Meadow Pay, and continued to support Meadow Price, our first product that’s now adopted by almost 50 universities. 2023 was also a logistically […]
In 2023, despite still only reading a modest amount, I almost tripled the number of books I read per year. The two things I did differently this year were participating in an alumni book club and using Goodreads to set a reading goal and track my reading. I quite enjoyed being part of the alumni […]
Between Christmas and New Years I normally update a couple of sites and servers that I maintain, including this personal blog. For this site, I update Gatsby.js and its dependencies (no major version this year), the WordPress instance that powers its headless CMS as well as its plugins. This year, during my yearly update cycle, […]
For the past month, I’ve mostly used an LTE Apple Watch Series 9 as my main mobile computing device. My iPhone now lives in the basement full-time, plugged into a MagSafe charging puck. I still keep it turned on all the time but its primary function is now to be an APNS server for my […]
As a security-minded technologist, you probably use a password manager, create unique, appropriately-complex passwords and turn on MFA for all the apps you use internally, right? That’s great, but if you’re also responsible for security at your org, how can you get all your colleagues to do the same? You can roll out policies all […]
I’ve traveled up and down the northeast corridor for over 15 years — as a Princeton student, as a New York transplant visiting family, as a consultant, and finally for quarterly Meadow on-sites. These are some guidelines I’ve developed for myself about making this trip. First, take Amtrak if you can. Taking the train is […]
For four months this year (April-July), in addition to working from my home office, I also had a reserved dedicated desk at a Regus coworking space close to home. Regus is the “original” WeWork in the flexible office space industry. After I realized that I needed some temporary office space, I toured three different locations […]
SwiftData, Apple’s long-awaited new framework for data persistence, was finally announced last month at WWDC 2023. I say long-awaited because I’ve been waiting for a Swift-first version of Core Data for almost an entire decade, ever since Swift came out in 2014. From the very beginning, a deep rift emerged between Swift and Core Data. […]
I’ve read a few books on engineering management and The Manager’s Path is now one of my favorites. Even if you’re a software engineer and don’t think you’ll ever want to get into management, reading this book will put your colleagues, workplaces and careers into perspective, especially if you’re earlier in your career. This book, […]
Every time a business or project shuts down, all the source code it produced, typically private and proprietary, never sees the light of day again. This is a real shame, especially for organizations that poured millions into R&D to produce it. I’ve always believed that we should release as much source code to the public […]
GitHub Copilot for Business came out on Valentine’s day of this year. My personal Copilot license was so game-changing that when the business version came out, I got licenses for all the other software engineers at Meadow. The most reliable way to use Copilot is to let it handle well-structured, “repetitive scaffolding”, which is so common […]
As I proposed in my Gatsby.js retro, I finally transitioned this blog from using Markdown files stored in git to using WordPress as a headless CMS (diff here). It’s still a statically-generated site and it still uses Gatsby.js. The only thing that changed is how the underlying data is stored and managed. My writing workflow […]
I’m very excited to announce that Meadow has raised a $3.5M seed round to build a modern student financial services platform for universities. Here’s our press release, and here’s the reporting from Business Insider (paywalled) that came out on Tuesday. I haven’t written about Meadow on here before, so allow me to formally introduce it. Meadow […]
It’s been over four years since I started building my blog on Gatsby.js. It’s common to read blog posts about moving your blog over to a new platform (here’s my post from 2018), but I find it much more valuable to read about how it went for those people after using the new platform for […]
I take a lot of notes as I work during the day. I usually keep a running log of the work I’m doing for the day. It helps me think out loud and write proto-documentation for myself. It’s a great way to remember what I was up to before. Last October, as I quarantined in […]
One of the skills I wish I’d learned earlier in my career is basic Linux server administration. Specifically in relation to hosting something on the web, either a web app or API that I wrote myself, or something from the thriving self-hosted community, such as WordPress. Managing servers is increasingly seen as the ‘older way’ […]
I get too many emails. You get too many emails. Everyone gets too many emails. It’s such a reality of digital life that no one really talks much about it anymore. The onslaught is seemingly unstoppable. Every new online account is liable to become another source of unwanted email. Innocuous interactions like getting a “digital […]
I’m excited to announce the release my new book, iOS App Distribution & Best Practices! You can read it online if you have a raywenderlich.comsubscription. If you like to read books on paper, you can buy the print version from Amazon in a few weeks. Why this book? One of the reasons why I’m so […]
Hurricane Sandy hit New York City three months into my first job as a software developer. At the time, I was working for the Huffington Post in Manhattan. HuffPost’s data centers were also in Manhattan and they got hit hard: “Datagram, the ISP whose Manhattan servers host BuzzFeed, Huffington Post, Gawker, and other sites, has […]
I’ve spent the last 2 weeks researching and writing about code signing and provisioning for my upcoming book “iOS App Distribution & Best Practices”. During my research there were a number of things I found surprising. This post documents my personal gotchas in the hopes it helps someone. I also offer five specific tips on […]
The eight edition of Core Data by Tutorials is out! This edition is compatible with Swift 5.3 and iOS 14. I can’t believe it’s been six years of book updates over six versions of iOS and five versions of Swift. Core Data continues to be a great choice for persisting and querying a complex object […]
I’m happy to announce that I’m working on a new book with the raywenderlich.com team. I find it hard to believe that the last book I co-authored, Core Data by Tutorials, came out six years ago. I’ve felt the itch to work on a new book for a couple of years, specifically on the topic […]
Anyone who spends any significant time in Xcode has to delete the Derived Data directory from time to time. When you have an odd indexing problem that doesn’t go away, like faulty auto-complete, deleting Derived Data usually solves it. This used to be much easier in Xcode 7 circa 2015, but ever since Xcode 8 […]
My last day at Upside was a week a ago. I haven’t written much about my job since I joined so before I moved on I wanted to write down a few memories. I joined Upside in the summer of 2017, almost 3 years ago. At the time I had decided to wind down my […]
Like many developers, I often do my work on multiple machines. While I do not own a day phone and a night phone, I do have three Macs that I could get work on: an iMac that I share with the family, a personal laptop and a work laptop. This is usually not a problem […]
I’m currently on paternity leave for our second child. At the same time, the world is going through an unprecedented global pandemic, which requires everyone to practice social distancing. That means lots of time at home. Between bursts of child care I sometimes have some downtime to update this blog. After making some tweaks to […]
The last days of 2018 are upon us! It’s a time for introspection, new resolutions and DateFormatter bugs. Someone reported a curious bug in an iOS date picker that I help maintain. When selecting one of the last days of 2018, the date picker would incorrectly think the date was in 2019. For example, picking […]
You know you’re a developer when you’ve spent more time moving your blog from platform to platform instead of actually writing blog posts. Until recently, this blog was hosted on Squarespace, which I still recommend to anyone who wants to host a website with minimum hassle. In my case, I wanted to learn more about […]
For the past month, I’ve been working on an updated version of 99 redditsfor iOS with Aman. 99 reddits is a lightweight Reddit client that lets you quickly explore images and (some) animated GIFs from any subreddit. 99 reddits was first launched back in 2012. Up to this point Aman had been updating the app […]
Update 2017-12-04: “Engineering has determined that your bug report (35633289) is a duplicate of 34404165 and will be closed.” For the 99 reddits app, I updated the UI to respect the “safe area” in iOS 11. One of the view controllers made use of a UIToolBar, which doesn’t look right on iOS 11 when I […]
I’m happy to announce that there’s a new edition of Core Data by Tutorialsavailable today, fully updated for iOS 11, Swift 4 and Xcode 9. How time flies! I still remember working on the original version of the book back in 2013 and it doesn’t seem that long ago. That’s the same year Apple announced […]
One of the first things I noticed after striking out on my own is how much my old employer did on my behalf. I’m not talking about the obvious things like pay and benefits. Instead, I’m talking about the (sometimes invisible) support structure in mid-size to large companies. Doing Everything A job title usually comes […]
Two months ago I left my full time software engineering job at Quidsi/Amazon to move to Washington D.C. This move was primarily a personal decision to be closer to family. At the same time, I also wanted the opportunity to focus full-time on software development consulting. I even incorporated a company to do it! It’s […]
During the past few years of doing mobile development I’ve found a number of tools that have saved me time and frustration. This is by no means a comprehensive list of all the tools out there, but rather the small set that I’ve found helpful. They are also not all limited to iOS development. Some […]
We’ve updated Core Data by Tutorials for Xcode 6.1. The update includes a number of small Swift changes and some fixes for errata that readers pointed out. Here’s the official announcement. If you played with Swift while it was still in beta, you probably realized that your projects would stop compiling going from one Xcode […]
Good news — Core Data by Tutorials launched yesterday in PDF format. The book is written in Swift and it covers everything from the fundamentals up to the new iOS 8 APIs. The whole process was a great team effort and I’m very happy that it’s finally out in the world. Personally I prefer following […]
I just finished watching a WWDC talk titled A Strategy of Great Work. It’s a beautiful talk by Ken Kocienda, a software engineer who’s worked at Apple for more than a decade.. He goes through 8 stories and 11 lessons that he learned during his tenure at Apple. The last lesson is “you are never done”. […]