One of the lesser-known perks of being an engineer at Procore is that our Engineering department offers employees the opportunity to "nomad" with other teams for a short period of time (typically two to four weeks). When you nomad, you immerse yourself entirely with the new team, attending their agile ceremonies and other meetings. Unless there’s an emergency, you put your regular team responsibilities on hold. This way, you can focus solely on your nomad.
After the introductions, you quickly become a temporary member of the new team. You get your development environment setup, learn what challenges the team is facing, and work together towards solving them. You get the full experience as the host team’s engineer—you work on tickets for the team, pair with engineers on that team, work on code reviews, lean in and test new changes, etc.
The full immersion offers a great way to experience a different team from your own. You can meet new people and get a chance to work side by side with other talented Procore employees that you don’t normally get to. You get a glimpse behind the curtain and see how other teams operate at a high level. A nomading engineer is like a breath of fresh air to a hosting team. They can offer the team a brand new perspective, innovative ideas, and a fresh set of eyes.
This year, I wanted to nomad with two different teams at Procore. As a C# engineer working on a handful of Windows desktop applications, I have not had much exposure to the rest of Product and Technology at Procore. Other than being a consumer of Procore's API, I have not worked on the web side of the Procore rails app.
Working with my manager, we identified teams that seemed interesting and were looking to host a nomad. After some deliberations, we selected the Android core team and the Project Management Core team as the best fits for me.
Android Team -
I had the opportunity to work on some exciting projects with the Android team. I saw them implementing a user survey on the app home screen, implementing the Room persistence library for client-side caching and storage, and working on an MVVM refactor of the Observations tool.
Most of the time, I had the opportunity to drive during our Zoom pairing sessions, which really helped me stay on top of things. My pairing partners were patient with me as I was learning Android Studio key combinations and wrote Kotlin. I also contributed to code reviews, performed manual testing for changes, and was even one of the first to upgrade to the latest version of Android Studio and use its new embedded AVD emulator.
Project Management Core Team -
With the Project Management Core team, I contributed by working on an internationalization ticket for PDF exports in the Meetings tool, cleaned up some code in the Schedule tool, and implemented end-to-end tests for a new feature in the Schedule tool.
I learned the basics of using the Cypress End-to-End Testing Framework. When setting up my local dev environment, I got my first taste of containerization and set up Docker to host many of the background services required to run the Procore rails app. Having never used a Mac for software development before, I dusted off my command line and vim skills and started using homebrew and asdf for package and dependency management. Spoiled by the excellent C# debugging tools in Visual Studio 2019, I quickly learned about binding.pry and debugging Ruby in Visual Studio Code. I figured out how to enable code navigation in Visual Studio Code, which made life easier.
While my inexperience with Android and Rails limited me to mostly smaller contributions during my nomads, I loved my nomading experience. I strongly believe my two nomads will greatly impact my career going forward at Procore and have provided me with many learning opportunities and new skills. I will be able to draw from my nomading experiences and offer my team a fresh perspective and ideas. I’ve even compiled a list of helpful ideas and changes for my current team.
Visit our career site to start your career journey at Procore today!