This week we interviewed Pedro, Production Engineer at Shopify, to learn more about his job. He gave us his personal recommendations to thrive in his job and what are the main challenges he has gone through his career
Read the full interview below!
What led you to become a Production Engineer?
I’m Pedro, Lead Production Engineer at Shopify. Specifically, I work on a team called Mobile Tooling. Our main focus is to develop tools and infrastructure for mobile developers to be productive doing their work.
I decided to become developer around 2010, when I was studying Telecommunication Engineering (I think it’s called Electrical Engineering internationally). I had some subjects to learn some programming languages, like Java, C or Matlab, and that was my first experience with telling a computer what to do. At the same time, I got my first iPhone and Macbook and I started doing iOS development on the side. That was a lot of fun! I developed software that I could see and interact with, right on my phone. Not only that, but I could get the GPS location, take photos… It’s crazy when you look at how much devices have changed in 10 years. Nowadays everyone is talking about AR, AI, ML and all the futuristic things that you can do with your device. Back then we didn’t have that much, which interestingly, forced us to be more creative.
I participated in several projects and eventually got my first job as iOS developer. When I joined, I was using Dropbox for version control, so you can imagine how familiar I was with software tools and concepts… Since then I learned a lot.
I learned that building software is not only about code, but about people. I learned the importance of writing code that reads like a book, tested and well organized. I also fell in love with he notion of open source to which I devote part of my time nowadays. I like helping people and open source is the perfect way to do it by sharing my code. Moreover, I enjoy the process of shaping a project idea, bootstrapping the project, and building a community of developers and maintainers around it.
What recommendations would you give to any colleague who would like to thrive in your job?
First and foremost, learn something that allows you to achieve your goals with technology, whether is a programming language, a framework, or a skill. Make sure that you learn that thing well. There’s a saying in Spanish that says: “who tries to learn many things, knows nothing”. Don’t try to learn as many things as you can because you will be incompetent at each of them. Moreover, knowing your goals is key to orientate your career towards them.
I often see developers getting lost in endless discussions and forget about the important point of why they use technology: facilitating people’s lives. Look at a painter. Their goal is to evoke feelings through painting. Improving the brushstroke technique is the mean to reproduce that feeling. We shouldn’t learn Rails or React for the sake of learning what everyone around us is using, we should learn them because it’s the most convenient way to achieve our goal.
And last but not least, stay human. We can’t make technology for humans if we forget that we are humans with feelings, problems, needs. Spend time understanding yourself and understanding others. By doing that, you’ll be a nice person, a great work colleague, and you’ll build technology that humans really need.
What do you like the most of your job? What do you like the least? What are the main challenges?
I mostly work building software for developers. To do so, I need to identify a need, think about how software could help, implement a solution, and iterate over it. That whole process is something that I enjoy a lot. I’m very close to the users of my software, which makes software development more collaborative.
Comparably, open source connects me with other developers who have similar needs and would love to collaborate on improving the software in the open. Isn’t that amazing? How a basic concept as Git has enabled this social interactions, and collaboration around software.
The main challenge of my job is not doing it off-schedule. In essence, knowing when it’s time for working and when it’s time for my family, my friends or myself. I used to let the passion control my time and that exhausted my brain and damaged other areas of my life. I’ve been working on that lately and made significant improvements.
What are the tools you find indispensable in your job?
GitHub: We need a place to host our code, don’t we? I’ve been using GitHub since I became developer and I love the tool. It’s simple and well designed.
Slack: When you work in a team, communication is important. Slack is, in my opinion, the perfect tool. It can be noisy if there are many people in your organization, but if you configure it right, that shouldn’t be a problem.
Xcode: When I develop in Swift, Xcode is the IDE that I use. Apple cares a lot about the frameworks and the tools that developers use and Xcode is a great example of that. Although it doesn’t offer as many features as other IDEs, the ones that it offers work great (with some exceptions).
SoundCloud: Unless I’m communicating, in which case I can’t listen to music at the same time, I’m always listening to music. I use SoundCloud because I discover new mixes and artists, and most importantly, because I can’t sing them.
How do you think your role will evolve in the future? Which skills will you need and how do you stay abreast?
To be honest I don’t know. I’ve been a bit sceptic about the path that technology is taking and I’m in refusing to learn skills that will enable a world that I don’t agree with. VR, AR and IA, I look at you.
Although those technologies can be used with good intentions, I’m scared of the harmful impact it might have. I think my role will evolve towards fighting those things back and help make technology human-centric.
I don’t know how yet, but I’d like to participate in that change. If that’s a topic that resonates with you, I recommend to check out Center for Humane Technologies. I’ll continue doing open source and doing some volunteer work. I recently joined the project ReDI school in Berlin which teaches technology to refugees from Syria so that they can integrate faster. We need more of those projects and be more human. Technologies and skills are the mean, they should not be the goal.