Tithe.ly Engineering
Lessons Learned in My First Year
I just wrapped up my second year as a developer, so I’m far from having fully arrived. (Check out My Story below if you’re curious about how I got here.) But with that said, I’ve been in it long enough to learn a few things along the way. The following are my top 6 lessons learned in my first year as a web developer at Tithely.
1. “T-T-T-Today Junior!”
I think one of the biggest barriers to growth is our own resistance to embracing how little we currently know (or conversely, how much we have left to learn). I’ve heard advice from tech gurus that would encourage you not to think or act like a junior. And I get what they’re trying to say. But I say, own it. Embrace it. No, don’t stay a junior forever. But for now, embrace the once-in-a-career opportunity that is your junior-ness! Here are some of the benefits:
- It takes the pressure off. Whether the pressure is coming from someone else or (more likely) from yourself, embracing your junior-ness will help you feel the permission to not know, to ask questions, and to make mistakes. I found once I realized I couldn’t really destroy our projects that I felt more freedom to just take a stab at a ticket even if I wasn’t necessarily sure how to do it. And a lot of good learning came from just trying.
- It frees you to ask for help. I’m not sure if asking for help comes easily for you, but it doesn’t always for me. Embracing my junior-ness, made it much easier to ask for help. I knew I needed it and I knew I wasn’t expected to know everything. Not knowing is OK. Just commit to learning now so you do know next time.
2. Pair Up Young Padawan
A lot of folks that end up in web development are not overly drawn to the idea of pair programming. And I can’t really speak from the perspective of a Jedi Master training his Padawan (trying times for Shawn and Max they were). But I can say that I learned a ton from the times I got to pair program with them. Its one thing to Google Stack Overflow. It’s another thing to watch someone else go to work and ask questions along the way. I learned how to think about problems and how to approach tickets. I learned about the tools we use. And I got practice communicating about code. No Padawan wants to completely tank his Master’s productivity (The Force no likey) so you have to find a balance, but if you’re a Padawan and you get the opportunity, learn from a Master!
3. Don’t Forget to Stretch
No, I’m not talking about working out (though stretching before and after your workouts is a good idea too). I’m talking about taking on tasks that stretch your current knowledge and abilities and force you to learn something new. This can be especially challenging when you’re new and you’ve finally become comfortable doing something. And you don’t want to badly over stretch. You need to find a balance, but when you have the opportunity, make the most of it by trying something a little outside your comfort zone. Over time, your comfort zone will expand!
4. Hoops, Hurdles and Rubber Stamps
When I first started, my goal for code reviews was to get through them with as little feedback as possible. I wanted my work to be approved and done! (And if someone wanted to leave a nice encouraging note, well that’d be icing on the cake!) Of course, approved merged and done code is the goal. But overtime, I learned that having my code reviewed offers so much more than a hoop to jump through or a hurdle to jump over:
- Protection - Code reviews help provide the protection that allows you (a fully embraced junior remember?) to freely make mistakes and learn from them without having to overly worry that bad code will make it out into the wild.
- Async Mentoring - Code reviews also ensure you’re getting feedback on your code, without necessarily having to completely interrupt your teammates work or require time pair programming. The async nature helps ease the load on other developers.
A second aspect of code reviews that I’ve found surprisingly helpful is the opportunity to review other people’s code. And again, I learned to value this more and more as a developer. I needed to grow from being a rubber stamp to providing substantial feedback. The practice of reviewing other developers code provides a lot to a junior dev:
- Reading Code - Reading and understanding someone else’s code is essential to becoming a better developer. It will force you to learn new ways of approaching a problem and even new tools, libraries and methods.
- Speaking Code - It also gives you the opportunity to practice communicating about code. You’ll need to formulate good questions and communicate your concerns, an essential skill as you grow in your career.
Code reviews are like getting in reps at the gym. You don’t get ripped overnight. But by putting in consistent time every day and stacking days, in time you will see progress. Sometimes you just have to have a little faith.
5. Find a Balance
There is art in coding and theres an art to being a junior developer. On one hand you have a job to do and widgets to churn out (in our case, in the form of clean, beautifully written, bug-free code that delivers “world class, cost-effective technology tools to make the business of the church easier”). On the other hand, you have a lot to learn. So you need to find a balance (and keep finding a balance) between the two. Here’s my advice:
- Be Aware - First, just be aware that you always need to be finding a balance. It’s easy to get caught up in one at the detriment of the other. Do you tend to lean more in one direction than the other? Be aware, and plan some strategies for helping you maintain a healthy balance.
- Ask for Help - No offense, but as a junior, you’re probably the least qualified to know when you’re out of balance. So ask for help. Specifically, Tithely gives you those handy Tech Leads, so use them!
6. Have a Little Faith
For me, I always make more of a problem or task on the front end, when I’m stuck and unsure how to move forward on the task I’ve been given. Until I find a solution and understand what it was that was making me feel stuck to begin with, I can feel overwhelmed and the problem can seem like a mountain.
On the flip side, once I’ve solved the problem or learned what I didn’t understand, I always (and I mean always) feel relieved and even a little silly for making such a big deal out of something that actually was not as tricky as I imagined. The unknown is a breeding ground for fear, and as a junior developer, there’s a lot of unknown. But that, I have learned, is where faith comes in.
In Hebrews 11:1, it says, “Now faith is the assurance of things hoped for, the conviction of things not seen.” Now, as a good ex-pastor, I have to admit that the verse (of course) is talking about having faith in God’s promises even when we can’t see it with our eyes. But I’ve found a similar pattern to be true in my work. Instead of freaking out when I hit a problem I don’t know how to solve, I need to take a deep breath and remember that it probably seems worse on this side of the problem.
In general, and specifically here at Tithely, God has given us a lot of resources. We are not alone. We will figure it out. As a junior developer, I needed to remind myself of this regularly. So if you find yourself in the same place, hold off on the panic button, take a deep breath and have a little faith.
My Story (TLDR)
My path to web development was a bit unconventional. I had little experience with computers in high school beyond learning to type properly (special shout out to Mavis Beacon). I ended up graduating from the University of Michigan with a degree in Secondary Education for Math and Physics. But instead of pursuing my first teaching gig, I felt called into church planting and full-time ministry to college students and I remained in that ministry for 12 years. While those were some great years that have helped shape me into the person I am today, I felt a growing sense that it was time for me to move on from full-time ministry into something else, but what?
Well from early on in life I’ve been drawn to collecting and analyzing data in order to understand my situation and to make better decisions in the future (probably what led me to the math/physics degree mentioned above). But my experience as a pastor of a local church actually pushed me even further in that direction, as I found myself wanting to know what was going on with our church as a whole and the people within it. Were we healthy? Were we getting healthier? How could I know? I needed more data!
So as I thought about what new career path I should take, I was drawn to something related to data. And my wife (lovingly) confirmed, “Yes, you really are that nerdy!” So I decided to pursue learning Data Analysis and Data Science with the dream that one day I might be able to somehow pair my love of data with the needs of the local church. And that’s when the perfect scenario was dropped into my lap!
I happened to be friends (and ex-roommates) with Karl Meisterheim (who was at that time the Tech Lead for the Insights and Integrations Team) and I eventually ended up with a job offer from Tithely to come and work for Karl on his team! It was all perfect except one big thing, I had A LOT to learn!
Onward and Upward
So there you have it. My top 6 lessons learned in my first year as a (38 year old junior) web developer. I hope you found them helpful. Oh, and one last insider tip: these lessons apply to everyone, not just junior developers. I think that’s really the case here at Tithely. Our leaders embody humility and a commitment to growth that fosters a culture that’s perfect for any developer looking to learn and grow! I’m grateful to have been a junior here!