Back to Blog
Photo of Codesmith Instructor Ryan with text that reads Codesmith Instructor Q&A

Meet the Academic Team: East Coast Remote Immersive Lead Engineering Instructor Ryan McDaniel

Codesmith’s Software Engineering Immersive programs help aspiring engineers launch meaningful careers in tech. And, our Academic Team is crucial to that success.

Meet Ryan McDaniel, the Lead Engineering Instructor for the East Coast Remote Immersive. Ryan shares advice for aspiring and current Codesmith residents, a couple habits every successful software engineer should form, and why he loves teaching at Codesmith.

What do you love about teaching?

What I love most about teaching is the circle of life aspect of it. I feel like when I'm teaching, I'm sort of paying it forward from my own teachers. Both from prior to Codesmith, throughout my life, and from within our community, the many amazing mentors I've had here at Codesmith. And then watching those that I teach go on themselves to become leaders is incredibly fulfilling – some within our community as our Engineering Fellows or as Instructors, taking up the mantle of leadership here in our community. But, the majority of those I teach go immediately into the industry to become leaders – mid and senior level engineers who take their technical skills and their so-called soft skills that they accrue to lead engineering teams across the industry. So, I’d say the most fulfilling thing about teaching is just seeing those that you mentor go on to mentor others.

How is teaching unique at Codesmith?

One of the most unique things about teaching at Codesmith is that everyone here is in some way taking a leap of faith. It's very unique teaching a group of adults. Often, our residents will remark that it's rare as an adult that we get the opportunity to just put everything on hold and be full-time students improving our own knowledge and skill sets. 

So, I think there's a special kind of curiosity and a special kind of drive and motivation that comes from being in this type of intense environment where everyone's goal is to quickly accrue technical skills and to be supportive of others – to build a community around themselves. I think that we really thrive on the curiosity of our students and that motivation they have to make the most of the time that they have with us.

How is the Academic Team structured at Codesmith and how often do you work directly with residents? 

Our Academic Team structure at Codesmith is really set up to make sure that residents have as much individual attention as possible. Our Academic Teams are made up of a Lead Instructor, which is my role in our East Coast Remote Immersive program, as well as an Engineering Instructor and Engineering Mentors. And then, we're also supported by a team of Engineering Fellows, who are more recent graduates of our program for any given campus. They are standouts from their own cohort – folks who really had a drive to support others and to lead in our community, and who wanted to have the chance to pay that experience forward to others. So, we've got about a three to one ratio of residents to instructors within our program. 

I get the chance to be leading lectures all the time, to hold office hours, to hold other sessions, where I get the chance to interact closely with our residents. We get to have family dinner together every Monday night where all of our team members and all of our residents get together in one room. I often refer to it as the most wholesome hour of my week. We keep notes throughout the week on people who've been doing great things behind the scenes, and we just spend an hour shouting each other out and then go back off into our nights.

My favorite way to spend time with residents is leading lectures, just hearing the amazing questions and comments that come out of any given cohort because you never know the life experience that different folks bring to the room when you're teaching. The technical experience and the backgrounds that some people bring into the room. So every single cycle, I'm surprised and amazed by the new and exciting questions I continue to get.

What advice would you give to folks in the Codesmith admissions process?

Throughout the admissions process, and in preparation for the technical interview, I would recommend definitely relying on Codesmith's ecosystem of resources. I definitely would recommend working through CSX, at least one time in full all the way through that final unit. There's a Chrome extension right at the end, which is actually a fun little preview of something that you'll do in the early parts of your residency. So, I'd recommend working through CSX, at least once. I'd recommend trying to attend as many of our free workshops, from the introductory level up to our JavaScript the Hard Parts series, as possible, because that's a really great way to experience the way that we teach at Codesmith – to give you that really strong mental model that you'll need to bring into the program.

But, I'd say above all, I'd recommend that you do three things – pair program, pair program, and pair program. That is the most important way to build the skills that you'll need in the program. There are very, very few things that you'll do as a resident at Codesmith alone. Pretty much everything that we do is in pairs or in engineering teams. And, that's really a reflection of the work that you'll do in the industry as well. You'll often be working with other engineers, and you'll need to develop those skills to work collaboratively in a technical environment. 

What advice would you give to residents recently accepted to the Codesmith immersive?

Once you have earned an acceptance to Codesmith, make sure that you've worked through CSX all the way at least once and that you continue to attend workshops, and you continue to pair program. But then, I'd recommend you throw yourself into the comprehensive pre-course that we provide to accepted students because it's really going to give you the strong foundation you need for fundamental front-end skills around HTML and CSS as well as some advanced JavaScript. 

So, as opposed to trying to predict the core curriculum and learning it before you come, I'd recommend throwing yourself into the resources that are provided to you. Because one thing I can promise you is that we will teach you the advanced algorithmic strategies, we will teach you the industry leading technologies. So, the most important thing you can do throughout the admissions process, and as you're preparing for the residency, is focus on building your strong technical foundations and really focus on building out your mental models – really understanding under the hood how your code is working and how it's functioning.

What advice would you give to someone who is currently enrolled in the immersive?

I get asked often what advice I would give to residents coming through the program. And, It sounds counterintuitive – very often people think I'm going to give them some hard hitting technical advice, or I'm going to tell them that they should be burning the candle at both ends. But, my biggest piece of advice for anyone enrolled in the immersive is to take breaks. Because once you begin the program, we are very confident you're going to be successful in the program. There are no mistaken admissions to the Codesmith Immersive. From day one, when I look out at the faces in the room, I know that they're all going to make it over the finish line. I know that they're prepared to be there. So really, at that point, as long as you're showing up every day with a good attitude and you're prepared to learn, burnout is going to be your biggest enemy. Working too many hours or not taking days off – that is what will catch up with you just as a human over the course of 13 weeks. 

So, taking breaks, taking a Sunday off to go outside, get some fresh air, do something that you enjoy, see people that you enjoy being around – that is the most important way that you can stave off burnout and set yourself up for success throughout the rest of the program. I can't tell you how many times I either personally have experienced or seen someone else experience finishing up on Saturday with some big technical problem that they weren't able to solve and feeling frustrated and thinking I'm just going to take Sunday off and not think about it for a day. Then they come back on Monday, and they suddenly look at their code and they realize exactly what was going wrong because their brain was continuing to marinate while they were away from the computer. 

What do you think sets Codesmith apart?

I think what sets Codesmith apart is our emphasis on empathetic engineering for those who are coming into the program and for those who are currently enrolled in the program. And, we see reflected among our graduates that they're bringing that to their roles after Codesmith as well. It gives them a whole lot of upward mobility in the roles that they go on to take after Codesmith, because they are set apart from their teams very often. They have a drive for community, a drive for supportiveness, and a drive for looking out for others in a technical environment, but in an empathetic way, driven by really strong technical and non-technical communication skills.

What are your favorite resources to stay up to date on coding best practices, emerging technologies, and trends within the software engineering industry?

One of my go to resources for staying up to date on exciting tech trends is this podcast called Syntax, which I hear referenced frequently among our residents. It's a really fantastic way to get glimpses at really popular conversations in the industry today. In terms of written resources, Medium has some really fantastic articles. A lot of our current residents post their own content on Medium. Reddit is just an endless sea of knowledge. There are so many awesome technical subreddits that developers use to discuss emerging technologies and frameworks, and to ask questions about new skills and technologies that they're learning. 

Throughout the admissions process, and the process of learning algorithmic skills, one of my own personal favorite tools is called Python Tutor. Though the name is Python Tutor, it supports all kinds of languages. It supports JavaScript. And what Python Tutor does is it allows you to submit a code snippet and then it does all kinds of live diagramming for you of execution context, of the call stack – similar to the diagramming we do in JavaScript the Hard Parts. It's no substitute for doing that diagramming on your own, but when you're really getting into a flow and doing a lot of problems back to back, it can be really, really helpful to have a tool that automates that process for you. If you're hitting a bug, it gives you the chance to use an external tool that will do some sort of diagramming for you of execution contexts. That really helps to drive the mental model that you have for how your code is executing.

What are you most proud of in your career so far?

In my career so far, the crowning achievement, the thing that I'm most proud of is taking over our Codesmith East Coast Remote Immersive program as Lead Engineering Instructor. Codesmith is a place that has completely changed my life in every way. I'm surrounded by incredible colleagues who push me every single day to continue to learn and continue to grow. So, for me, it's been just an immense honor to be leading this program and helping to set the tone and the content for all of the amazing folks who are coming up behind me – our new residents and team members each and every cycle.

What is one habit that every successful software engineer should form?

One of the most important habits that any software engineer should form as early as possible is technical communication. Because technical communication is the heart of nearly all software engineering work, which is most often done collaboratively to at least some degree, really fine tuning those technical communication skills early on is setting yourself up for long term success at Codesmith, certainly, but also, far beyond in your work as an engineer. 

Another really important habit for a software engineer to form is the habit of test-driven development. So, in the learning stage, in the technical interviewing stage, that may be as simple as writing some console logs and test cases with an expected outcome right at the start as you're starting to work on a new algorithm. And then writing the code and running the test cases repeatedly until you receive your expected output. That's a really great way to test the skills that you're throwing at any given algorithm for sure. But, it's also setting you up longer term with this foundational habit of test-driven development. And that's going to allow you to write complex tests for all aspects of the applications that you'll go on to build not very long into your residency at Codesmith. We build our skills quite quickly. By just a couple of weeks in, you'll be really starting to put those skills together in a full-stack way, building full-stack applications. So, building that skill early on of test-driven development will really set you up well for long-term success as an engineer, making mature engineering decisions.

Is there anything else that you want to add?

I have tried many times to explain to folks from outside of our community what it is that we do here – to my family and friends who don't know a lot about Codesmith. And, often I've described Codesmith as being sort of similar to the science fiction concept of a wormhole. You enter in one place in the universe, and then you instantaneously emerge in some other part of the universe. That is very much what my experience at Codesmith was. 

I feel that I entered Codesmith in one place in the universe. And, 13 weeks is not instantaneous, but I felt like I nearly instantly emerged in a completely different place in the universe with an entirely new skill set and an entirely new group of friends and colleagues and community members around me. My life had completely changed. The roles that I was able to apply for, the skills that I was able to apply, had completely changed in what felt like an overnight way. So, that's a helpful way to think about what it is like to go through this experience. It is intense. Going through Codesmith is intense. But, I think that you will also find that you enter in one place in the universe and you emerge seemingly instantly in a completely different place in the universe, ready to take your skills in directions you won't be able to predict until you get there.