If you were to pop open Mail Pilot’s code base, you’d see that, under the hood, Mail Pilot 3 is known as “Mail Pilot HL” — here’s why.
When I was in high school, my mother had the presence of mind to enroll me in a course called Computer Science. I didn’t know what that meant at 15, but she knew it was right for me.
In my first year of computer science in the International Baccalaureate program, I took “Pre-IB CS” where we learned Java. The second year was “IB CS SL” — for Standard Level. We learned the ins and outs of software engineering, more complex data structures, etc.
The final year was “IB CS HL” — for Higher Level. The course was rigorous, and it was capped with a project so large that international graders wouldn’t be expected to have scores finalized until well after I had graduated.
At the beginning of the year, my (fantastic) professor started HL by telling the four of us that were left, “Last year, in SL, you learned how to make things work. This year, in HL, you’ll learn how to make things work well.”
From Big O notation onward, we learned how to engineer well-built software.
This jump from SL to HL is the jump that Mail Pilot 3 is making. In the first iterations of Mail Pilot, we figured out how to make all these crazy ideas that 1,624 people backed in a record-breaking Kickstarter campaign simply work.
In this iteration of Mail Pilot, we’ve figured out how to make these crazy ideas work really well. The application is finely engineered. We’ve never spent this amount of pre-release development time on any of our products before. We’re taking our time to do it exactly right. We’re working to make sure it doesn’t just work, but works really well.
Part of it is a more rigorous process, but much of it is simply much better engineering — using Swift (optionals, structs, and constants keep bugs away!), and Redux (unidirectional data flow, predictable state, functional programming, and pure tests — all so simple but so powerful). Redux is a significantly better engineering paradigm for Mail Pilot than MVC was (all previous versions were built with the MVC model). Getting it to work with native Cocoa interface components and MailCore was tricky at first, but incredibly worth it.
So that’s why Mail Pilot began life as Mail Pilot HL — because of what my favorite teacher in school taught me 10 years ago (thanks, Mr. Baker!).
If you’re looking forward to Mail Pilot 3, be sure to subscribe at mailpilot.co to get updates on the Public Preview — out soon! And here’s the teaser video if you haven’t seen it yet: