Developer / Director
I'm a web, mobile and distributed systems developer with 15 years of experience (some as a director of engineering). My working tenets are open source, web technologies, testing and automation. A theme in my work over the years has been a focus on developer tooling and developer experience.
I started as a web developer and learned various other programming paradigms when mobile exploded in North America in 2008. I was one of the core developers of PhoneGap, a hybrid mobile application framework bridging the gap between web and mobile development. This work eventually led to an acquisition by Adobe.
In 2013, I joined Sauce Labs and worked on a large scale testing-as-a-service product. I gained experience with networking and systems in order to manage fleets of thousands of VMs, containers, machines and mobile phones running in data centers. Our work enabled millions of developers to test their code at scale. In 2015 I shifted to management and eventually directed an office of 25 people, ensuring multiple engineering teams performed at a high level while focussing on people happiness.
In 2016, I decided to take a break from management and went back to coding - it is what I love to do - and ran an Open Source Program Office back at Adobe. In the summer of 2019 I switched roles and became Community Manager on the Community Engineering Team at Magento, which had been recently acquired by Adobe.
In early 2020, I left Magento and Adobe to take a break and since the summer of 2020 until the summer of 2021 I was consulting and doing freelance data analysis and software development for AWS at Amazon, Begin and others.
In the summer of 2021 I joined Slack as part of their Developer Relations Engineering team as a staff engineer, where I have worked on their developer platform, focussing on developer tooling like Slack's platform CLI, open source application SDKs like Bolt and their next-generation platform Deno SDK.
Proficiencies
I pride myself most on my ability to learn new languages, frameworks, and methodologies quickly.
I am confident in JavaScript/TypeScript, Java, C/C++, Python, sh, Go, and can get by in PHP, Ruby, C# and Hacklang.
I've worked with a variety of technologies and have expertise in JavaScript runtimes, all different kinds of cloud developer services (AWS, Azure, Google Cloud) (but particularly enjoying functions-as-a-service), all things web (both frontend and backend), relational and document databases, infrastructure-as-code and mobile development for both Android and iOS. I have architected complex distributed systems written as monoliths and microservices.
Technologies that I have experience with include:
- node.js, my favourite playground, but I am spending more of my time in deno.
-
Infrastructure-as-a-service offerings like AWS, Azure and Google Cloud. I am a particular fan of the following services:
- AWS Lambda for chopping up compute workloads into discrete functions working in unison.
- AWS DynamoDB as a new, different and performant way of persisting and querying data.
- I am a proponent of the web, so I have deep understanding of DNS, HTTP and browsers; it is my platform of delivery of choice.
- I have built good developer experiences for SDKs using TypeScript; while I am not a fan per se of TypeScript (JSDoc does the job well enough in most cases!), providing a good developer experience for developer tooling has been a recurring theme and objective throughout my career.
- Front-end JavaScript frameworks like React, Angular, Framework7, Vue and Svelte.
- Relational databases using MySQL, MSSQL and Google's BigQuery.
- Document databases using AWS DynamoDB, CouchDB and ElasticSearch.
- Configuration management / infrastructure-as-code using Ansible and AWS CloudFormation.
- Mobile development on Android, along with a good understanding of the Android Open Source Project, all the way down to the kernel, as well as proficiency with using Android's NDK.
- I have developed native iOS applications.
I'm fluent in English, Polish, Spanish and French and would probably fail terribly, but try regardless, to have a conversation in Farsi.
Work
2021–Current: Slack
Staff Open Source Engineer
In the summer of 2021 I joined the Developer Relations Engineering team at Slack! I work almost exclusively in the open on Slack's GitHub organizations, focussing on developer tooling and developer experience.
Most of my efforts are put into Slack's next-generation automation platform, where I work on a Golang project powering Slack's platform CLI tool, the Bolt suite of application SDKs for node.js, Python and Java, and most recently, a new Slack application framework built for Deno.
2020–2021: Freelance Consulting
Data Analysis and Development
In the summer of 2020 I began consulting and offering data analysis and development services to tech companies large and small.
- I provided data analysis services to AWS and UnlockOpen.
- I developed software for AWS and Copper Inc.
2016–2020: Adobe
-
Magento Community Manager
2019–2020:In July 2019, I joined the Community Engineering team at Magento - an Adobe company. My responsibilities comprised of project management, training and public relations.
- Project Management: there are several community projects that made up the Magento ecosystem, not least of which was the core project, magento2, but this also included projects like MSI and Adobe Stock Integration. I coordinated between the corporation and the community to push project evolution forward, ensured release deadlines were met while including the third party development community every step of the way.
- Training: getting a dedicated team working elbow-to-elbow with and coordinating a massive third party developer community to build software together has its limits. Magento realizes this. As a result, internal teams at Magento were trained on how to work with the community in a transparent way. I was responsible for assembling the curriculum and running the training sessions.
- Public Relations: I managed social media channels for our team, such as the Community Engineering Twitter account and our YouTube Channel. I also helped with writing posts on the Magento DevBlog.
-
2016–2019: Senior Computer Scientist
In November of 2016, I rejoined Adobe and together with a few co-workers from the PhoneGap team formed Adobe's Developer Experience team. We worked to improve Adobe's developer ecosystem, both externally and internally (at the time, Adobe was composed of over 8,000 engineers).
I was focussed on increasing collaboration across teams, departments and organizations inside the corporation by influencing the environment we work in: by promoting open source and helping nurture open development practices internally by helping evolve Adobe's Open Source Office, influencing the developer experience of Adobe's nascent platform offerings to push adoption forward, tracking tech company involvement in open source as well as redesigning and developing Adobe's new developer portal. We also built various tools and resources to help Adobians be productive in open source: we built a serverless-powered GitHub App, Adobe's CLA Bot, to check that contributors signed Adobe's CLA, evolved an Adobe open source starter repo and put together documentation templates for open source projects in order to formalize their goals, workflow and governance to help attract contributors. These efforts helped double the number of active Adobians on GitHub from 2017 to 2018. Lastly, one of my responsibilities on this team was helping provide feedback on the Adobe Experience Platform's Content Services API and build starter resources for this API like tutorials and code samples.
2013–2016: Sauce Labs
-
2015–2016: Director of Engineering
In my final two years at Sauce, I took the dive into management, coded less and worked on more organizational and process challenges such as hiring, mobile product strategy and team management as Director of Engineering for Sauce Labs' new-at-the-time Vancouver, Canada office.
-
2013–2014: Lead Software Engineer
In September of 2013, I joined Sauce Labs where I started as a member of the Mobile R&D team. This was the team responsible for designing and building Sauce's mobile solution — an on-demand service for access to virtual and real Android and iOS devices, mainly for testing native and web applications.
I veered away from focusing on mobile development exclusively in my time at Sauce Labs. I gained valuable experience managing fleets of both bare-metal and virtual machines of various operating systems (Linux, Windows and Mac) powering Sauce's testing service. I learned how to build and run a distributed, highly-available system, shifting my focus towards design and maintenance of systems, from hardware up to software, from operational to programming concerns.
2011–2013: Adobe
Lead Computer Scientist
In late 2011, Nitobi was acquired by Adobe, where I continued work on PhoneGap. Most of my activity took place under the Apache Software Foundation as the Cordova project.
My projects at Adobe were mostly Cordova-specific and included:
- cordova-cli, a nodejs-based command line tool for Cordova-based applications — available on npm and downloaded, at its peak, over 100000 times per week.
- cordova-js, the unified JavaScript layer for the Cordova project.
- cordova-android, the Android implementation of Cordova.
- cordova-ios, the iOS implementation of Cordova.
- cordova-blackberry, the BlackBerry WebWorks implementation of Cordova.
- cordova-wp7, the Windows Phone 7 implementation of Cordova.
- cordova-plugman, a nodejs-based command line tool for installing and uninstalling Cordova plugins — available on npm.
2008–2011: Nitobi Inc.
Lead Software Developer
After graduating university in 2008, I joined Nitobi, a consultancy where I did web and mobile software development for various clients.
- Trial-by-fire, as my first client work I worked on a top-1000 web property for Microsoft, ieaddons.com, getting 1.5–2.5 million daily unique visits.
- On behalf of global travel giant Sabre Holdings, I developed mobile websites and applications for corporate travel under the GetThere suite of apps.
- Open source work on PhoneGap, ranging from implementations on specific mobile platforms (Android, BlackBerry, iOS) to the tooling, as well as leveraging it for various consulting engagements.
- Then-Nitobi-now-Adobe's deactivated online mobile application compilation/deployment tool, PhoneGap Build, powered by a Ruby-on-Rails stack.
Education
2015: UC Berkeley Executive Education
I completed the New Manager Bootcamp at the School of Executive Education at UC Berkeley in California.
2003–2008: Simon Fraser University
I graduated from Simon Fraser University with a B.A.Sc. in Computing Science with a specialization in artificial intelligence. Yeah, that's right! AI! In 2008! Before it was cool!
Associations
- I'm a maintainer of the OpenJS Foundation-stewarded Architect serverless application framework.
- I am a member of the Apache Software Foundation and was a committer and project management committee member on the open source Cordova project.
- I'm a member of the World Wide Web Consortium, and have been involved in developing mobile device and web related standards as part of the Device API, Web Applications and Web Platform working groups.
- I'm a member of the Open Source Initiative.