Profile: Grant Dickie, Web Developer
“It’s always heartwarming to hear from a fellow dev that I made their daily tasks that much easier to handle.”
Where are you from originally?
What did you major in in college?
Combined English and German Studies.
When did you join NPR?
What are you currently working on, or what have you recently worked on?
Right now, I’m on a team that's upgrading and refactoring our publishing process, which brings new content to users on our website and in our apps. Normally, I’m working behind the scenes improving our Jenkins setup to handle more advanced features for our continuous deployment initiative.
What personally excites you about being a developer?
What I love to solve are issues surrounding making developers' lives easier. We still rely a lot on manual processes to get things done around here. A lot of the development world has moved on from this and provided useful insight into ways we can improve. While not all of those solutions are useful for us, I find it important to research them and use what we can. Other than that, I’m excited to introduce new monitoring tools that make our code more transparent and easy to debug. It’s always heartwarming to hear from a fellow dev that I made their daily tasks that much easier to handle.
What is your favorite Serendipity Days project that you worked on?
One Serendipity Days project I did was create a full 360 panorama video with some of the team from the Global Health Desk. I really enjoyed the diversity of skills the team brought to the table. We were working up until the last minute and it felt pretty tense, but the payoff was huge and we learned a ton. I ended up being able to display the video in a super basic Unity program which gave everyone a nice prototype to play with.
I hear your team is made up of polyglots, but do you personally have a favored programming language?
This is always hard because I like to learn new languages. NodeJS is definitely in the top three just because it has a wide range of use cases. Groovy in combination with the Jobs DSL engine is also interesting to me. We’re using that on our Jenkins server as part of the TechOps team that I’m on. A lot of interesting things can happen when you make a custom Jenkins job, I must say.
What are some of your hobbies and interests?
When I get the time, I do enjoy homebrewing. Brewing has some overlap with what I do at work since it’s incredibly procedural. Also, while there are standard techniques and recipes for brewing, there is always room for experimentation and, if all goes well, improvement. Plus, I get to share the rewards of good labor!
What is your favorite Tiny Desk Concert out of the ones you attended?
Dan Deacon; even though I was too shy to participate, I was able to drink in all of the wild and crazy going on around Bob Boilen’s desk. Dan also seemed right there with us — maybe even a little more nervous than we were. The whole thing had an electricity to it — I can’t wait till I can go see one of his shows in a real venue. (Sorry Bob!)
Aside from the Tiny Desk concerts, what are some of your favorite things about working at NPR?
The community building that happens every day here. Recently I’ve been doing a lot of hard work on the team I’m on. Despite some hits and misses, we’re still able to sit back and laugh about things, share GIFs, and generally be human with one another. That’s really tough for any working group to do and it makes me proud to be in a place that honors that ethic.
What are some tech conferences you have attended in the past, and what were your key takeaways?
Back in April, I attended the Facebook F8 Conference. Facebook sets a high bar in terms of their scale and efficiency in delivering code. However, there were a lot of ideas to take away. One thing that impressed me was how their testing automation is fully complete. Each time a developer commits code on their app team, they load and run tests on physical devices — all with automated steps. The amount of attention and monitoring they use with their systems is also a good benchmark to work toward. All in all, it was an inspiring developer conference.
If you were to speak at a tech conference, what would you love to give a talk about?
Believe it or not, Paul Miles and I are gearing up to speak about our JenkinsOps work. JenkinsOps is how we’re trying to get our foot in the door with our continuous deployment initiative. To do this, I’ve created some custom Groovy + Job DSL code that automatically generates Jenkins jobs to handle unit and functional testing on any given environment.
Other than that, I’d like to speak more on the subject of continuous deployment from the code architecture angle. There are a few stories out there regarding how teams have gone from monolithic codebases to microservices. It would be interesting to give a talk about how our team has accomplished this in some ways and not in others, as well as what the roadblocks are.