Canvas Dx
Software Engineer
I’ve been building apps for Apple platforms within startups for more than 8 years. As a senior iOS Engineer, I am excited to mentor other engineers and build a cohesive team better that than the sum of its parts.
A list of core competencies and experience…
A well-structured project can encourage well-factored and better-structured code. I am experienced at refactoring projects into multiple frameworks and Swift packages, making core business logic available to additional apps. This separation helps junior engineers develop a better understanding of how to separate objects and adhere better to SOLID principles. This increased modularization improves testing, compilation time, and can help with progressively adopting new Apple technologies.
Humans make mistakes. Consistent quality-products require automating away human error, with the added benefit of saving time too. It is important to stay aware of where the pain point of a person and teams workflow is and take the time to solve it.
Engineering meetings without notes or a documented solution may as well have never happened. People misunderstand each other and memories are fragile. Despite my own dyslexia (or maybe because of it) I am an avid documenter of the systems I work with. Most importantly the time spent writing has proven to save time in making sure we all are building the same thing.
I began developing for Apple platforms using Objective-C*. My career grew as Swift was released and matured. I have written Obj-C adapters to bridge between both C# and C++. I am competent at bash, Ruby, and other scripting languages. The architecture patterns I have worked within are MVC and MVVM, while I continue to read up on the other interesting options like TCA, RIB, and VIPOR. In general, these more defined patterns become more helpful when working on larger teams, which haven’t been appropriate within the small startups I have been a part of to date.
* Technically first MacOS code I wrote was in C using CodeWarrior, but it was an absolute mess!
Throughout my career, Apple has brought on many technology transitions. The natural evolution of software includes even more transitions. These take time, planning, and are made easier with well-structured code. These transitions often can’t be easily defined in a single issue or even epic. I take pride in managing these long-term conversions by building team consensus early, laying the groundwork in each new PR, and steadily moving the codebase in a clear well defined direction.
I’m an experienced leader and hiring manager that enjoys fostering the skills and growth of my teammates. I believe in servant leadership and model the actions I expect out of the team. Engineers do their best when they feel ownership over their work. This takes careful trust while clearly defining expectations and requirements. I make myself open to critique, encouraging honest feedback, while also being sure to give clear actionable feedback to those I work with.
When you see a problem, solve it. It’s important to watch for the pain-points within your team’s efforts and imagine what would make the work faster, easier, or better for everyone. I’ve taken the initiative throughout my career to build tools that make an impact:
My original Apple Platform development training came from the fine team at InvasiveCode. My thanks to Geppy Parziale and Eva Diaz-Santana for the excellent foundation in the Cocoa design patterns.
Software Engineer
Software Engineer
Software Engineer
Software Engineer
Software Engineer
Software Engineer
Design, Software Engineer