Codesmith’s Software Engineering Immersive programs are designed to help aspiring software...
Meet the Academic Team: Central Time Remote Immersive Lead Engineering Instructor Katrina Villanueva
The Academic Team is crucial to the success of Codesmith residents. Our Engineering Fellows, Mentors, Instructors, and Lead Instructors provide the technical guidance and support needed to guide our residents to meaningful careers in technology.
Meet Katrina Villanueva, the Lead Engineering Instructor for the Central Time Remote Immersive. Katrina offers up some of her tips to prepare for Codesmith, what resources she uses to stay up to date in the tech industry, and why she loves teaching here at Codesmith.
How is teaching unique at Codemith?
Teaching is unique at Codesmith, I think in large part due to the community. The community is just so safe and supportive, and there are so many resources – not just in documentation and all of that, but also in mentorship. My lead instructor became my mentor. And, I'm absolutely grateful for that because that has shaped me into the instructor that I am.
Also, I think what is unique is that given the nature of Codesmith as an educational institution, a lot of residents come into Codesmith really wanting to change their lives. The people that come here have found a passion for engineering, and they're also wanting to redirect and pivot the direction of their lives. They come from very different backgrounds. The diversity is incredible, [people come] from all walks of life and all places around the world. And there's something so special about that because the learning extends beyond the technical and engineering practices. It also challenges folks to really be open as humans.
How is the Academic Team structured at Codesmith? And how often do you work directly with residents?
Typically, we have a Lead Engineering Instructor. Then, under the lead, there is the Engineering Instructor. Then, under the instructor, there are Engineering Mentors. And those are the core instructors. Those are the folks that will be leading a lot of the core material and lectures.
Then from there, we also have about nine fellows per program. These fellows are the ones doing the important work on the ground – meeting with residents and giving them Academic Progress Checkpoints to understand where they are in the program technically. The fellows are really the ones getting to interact. However, as a lead, I definitely am able to extend myself. My door is always open. I always get DMs for clarification purposes or just general questions, which I love. And, even though I'm not necessarily having as much one on one time, we still have office hours where we check in with residents. I have meetings with residents all the time – if they're needing extra feedback on their technical abilities or if they need extra help with navigating impostor syndrome. I am a woman, and so I find that I also am able to have a lot of really important conversations with a lot of the female engineers in the community. Having that direct contact with residents is absolutely essential to me. Even with lectures – I know that it's not necessarily one on one time – but I pride myself in being very observant of the residents to see how they're doing and how they're feeling. I'm able to plan things around that based on our interactions in lectures as well.
What do you hope that residents take away from your lectures and their experience at Codesmith?
If I had to choose one thing for residents to take away from being in Codesmith, I would say just knowing that they can do it. I know that sounds kind of cheesy, but at the end of the day, they have come in and they are here for a reason. We talk a lot about this in the imposter syndrome lecture – it's no fluke, people who are in the program are here for a reason. There's a lot of questioning like, “I'm not sure if I understand this material,” “how can I move forward?” Or, “I don't know if I'm contributing enough.” But, at the end of the day, once they go through the entire program, people always say, “I can't believe we got through that together.” And now they're going into the job search. The one takeaway is never to lose sight of the fact that they have what it takes as long as they put in the work, as long as they have the positivity and passion for engineering. And, really trust the process that they're enough and even more than enough, and that they will be successful in this industry.
What advice would you give to residents in the admissions process, or those who are recently accepted to the immersive?
Codesmith has a lot of really amazing resources. So, for those folks that want to get into the program or who have been admitted and want to prep more, we already have the resources that are going to both bolster the chances for entry and also for success in the program.
Pair Programming is another workshop that we offer that is also free. Pair programming is great because it is one of the biggest spaces to learn because you're seeing a different approach from a different person and are able to grow from that. There are also opportunities if you are the more experienced engineer to help another person and mentor another person, which also expands yourself in a very different way, in a non-technical way. So, pair programming is really, really essential. In fact, in the residency you pair program all the time. Every unit and every new challenge that you do, you’re pair programming. So, it is really important to be comfortable with that.
An extension of that, especially if you're preparing for technical interviews, mock interviews are a great way to also prep. Having somebody do a mock interview for you is really, really important. You learn from each other that way. And, putting yourself in the interviewer's shoes is also really helpful because then you understand that the interviewer is always rooting for you.
The last thing I would say is really extend yourself to be part of the community. Alongside CSX, there is CSX Slack. I always encourage folks, even though you're still learning and even though you're still trying to get into the program, or maybe you've already been accepted, really look through the Slack. And, see if there's anything that you can respond to, that you can provide guidance for. It just reinforces your own knowledge to be able to help somebody else understand the concept. So, be an active part of the community.
What are your favorite resources or tools to stay up to date on coding best practices, emerging technologies and trends within software engineering?
Also, helping yourself with algorithms and exercising that algorithmic muscle. So, some tools would be Edabit, Codewars, and Leetcode for more advanced challenges. And then, podcasts are also great. There is one called JavaUnscripted, which is actually a podcast that was created by Codesmith graduates. First of all, that's a really, really cool product of some of our graduates, so really awesome. But, the podcast really focuses on their journey, what they've experienced growing in this industry, and best practices. I think that would be really good to listen to. I know that they've also talked about impostor syndrome, which can be very helpful, for example. So, really good podcast.
Another podcast that my mentor turned me on to is Syntax. It's by Wes Bos and Scott Tolinski. They're full stack engineers. And, they just dive into a lot of engineering concepts, best practices, and trends in the industry. For example, when Wordle was big, they had the creator come on and talk about it. So some really, really good learning experiences there.
Another resource would be educative.io, especially for those who have already gone through the program. They have a lot of resources for more complex technical interviews, like system design interviews.
What's one habit that every successful software engineer should form?
Really leaning on other people. I know that sounds strange. But, at the end of the day, it really is all about reaching out to folks to be like, “hey, can you provide code review?” If that's not something that's being offered. Or, leaning on your colleagues for pair programming, and also extending that help through mentorship. So, providing help to junior engineers is really important.
And the reason I say this is it's such a team effort. And, you learn the more you lean on other people. It's a hard industry – you hit blocks, you make mistakes, and you're asked to do and create things that you've never done before. So to also have that emotional and mental support from somebody else who understands what you're going through by way of another software engineer, I think is really, really important.
We invited the Svelte creator, Rich Harris, to speak to one of our cohorts. And, he also said something about how he would recommend finding a buddy as you move through this process. So, having somebody to bounce ideas off of in a technical sense, and also having somebody to support you in the more emotional mental capacity is really important.