I'm a software developer based out of Vancouver, BC on the west coast of Canada, in my free time I'm usually outdoors 🌱, skateboarding 🛹, or bouldering.
- The process of improvement through repitition and refinement
- Performance and true iterative process in software development
- Data visualization and design
- To build a modern computer from scratch, currently implementing a VM Translator as part of the Nand2Tetris course, and The Elements of Computer Systems
- Swift/SwiftUI
- Building a personal productivity tool as a native macOS app, using Swift and SwiftUI, for people who work on teams and use Git, GitHub, and Jira
- Working on a few articles that detail the process of migrating from Angular.js to React and TypeScript
As either an independent contractor, or full-time employee, I’m looking to bring my skills as a frontend developer to your team or business.
I’d bring with me the following non-exhaustive list of skills, experiences, and other ways I’d be able to add value
I’d be expecting that at the right place (as an employee) there would be the option or expectation to continually grow and add to the list
- Contributing to large typed or untyped, JavaScript and Python codebases
- Improving test coverage by designing and implementing automated integration and unit tests in Jest using testing-library, cypress, puppeteer, and incorporating dependency injection principles into the design of previously tightly-coupled controllers or components
- Designing and implementing responsive layouts with CSS grid and flexbox, often using SCSS or native CSS nesting and variable capabilities
- Configuring Webpack, Typescript, Vite, build systems, and some legacy taskrunners such as Grunt and Gulp
- Refactoring complex untyped JavaScript/Angular.js code to React with TypeScript
- Getting up to speed quickly with new APIs or tools in general and evaluating them for use
- Debugging obscure issues reported by customers and delivering fixes
- Implementing features to an agreed upon published spec/protocol for the purpose of interoperability with other applications
- Collaborating with widely distributed colleagues, while…
- having my code reviewed by them
- reviewing their changes and offering feedback
- solving problems in an async or sync context (Jira, Slack, Zoom) depending on the nature and complexity of the discussion
- Mentoring junior colleagues and helping onboard new colleagues
- Being a temporary lead in an Agile team
- Fostering an environment where people feel valued and comfortable openly communicating
- Navigating stressful periods of uncertainty and recovering from burnout