Want to Learn From Google-Grade Software Engineers? Gabriel Lebec Explains Why That's Possible at Fullstack
This series profiles our instructors at Fullstack Academy and Grace Hopper Program, giving you an inside look at their backgrounds and what they love most about working with and for our students. They also offer up solid advice for prospective students.
Name: Gabriel Lebec
Program(s): Grace Hopper Program, Fullstack Academy
Favorite previous experience: We’re gonna go ahead and say working at Fullstack :)
New job: Software Engineer at Google
Gabriel Lebec has recently been hired by Google after more than four years as a Fullstack Academy and Grace Hopper Program instructor.
While we’re sad to see him go, we’re grateful for his time with us—and proud that as of the publication of this piece, Gabriel is officially our third instructor to be hired by Google in the last year! You know your instructors know their stuff when they’re actively recruited by one of the most coveted employers in the tech industry.
Before Gabriel left, we spoke with him about why our instructors make such hireable software developers, what he loved about his time here, and his advice for future coders.
Why Google Hires Fullstack Instructors
Us: Congrats on your new role at Google! How do you feel your experience here helped you land your new gig? In what ways do you think Google sees our instructors as value-adds?
Gabriel Lebec: A number of our instructors have either come from or gone on to work at Google. While I haven’t heard any explanations for this phenomenon from hiring managers themselves, I can share my own impressions and experiences.
1. Deep Understanding of Fundamentals
Teaching for Fullstack pushes our instructors to acquire a very precise knowledge of fundamentals. To explain something correctly and clearly, especially in response to an unanticipated question, requires a deep understanding of the languages and tools we work with.
2. Communication and Collaboration
Teaching also trains us in communicating technical concepts with nuance, and both technical communication and project collaboration are explicitly built in to our curriculum, since we require that all students build multiple team projects and pair program daily in their first six weeks on campus. The interpersonal skills our students build as a result empower those students to demonstrate with ease their effectiveness as software engineers both during the job search and over their first few months on the job.
3. Continual Learning
The culture at Fullstack and the Grace Hopper Program encourages both students and instructors to dive into new topics and approaches, sharing discoveries and theoretical knowledge. This kind of continual education (both of each other and ourselves) not only contributes to the success of our students, but also helps our instructors stand out if and when they return to the industry.
4. The Upside of Technical Difficulties
On a technical note, our students often have a variety of machines, environment setups, and personal styles which present novel debugging challenges. Our teaching fellows and instructors therefore get experience analyzing and identifying errors across varied codebases, a skill that comes in handy when faced with a tricky whiteboarding problem in a technical interview.
5. Mock Interview Experience
On that same subject, one of our responsibilities at Fullstack is to prepare students for the interview circuit. Creating and giving interview problems (both behavioral and technical) has the side effect of training the instructors in those same strategies and concepts. Grads then report back exactly what interview styles work at which companies, so instructors have access to that intel for use in their own interviews.
In short, Fullstack has been fertile ground not only for students, but for teaching fellows and instructors as well. Teaching adds new dimensions and considerations to what is otherwise a very technical role, and I think those additional capabilities are attractive to a company looking to hire well-rounded engineers.
Advice For Prospective Students
What advice do you have for folks considering bootcamp who want to go on to get hired somewhere like Google?
GL: An intensive immersive program like ours is definitely a career accelerator that can unlock new opportunities for motivated, hard-working, talented students. But what you get out of a bootcamp depends a lot on what you put in. Here’s how you can be successful at a bootcamp like Fullstack Academy.
- Communicate with your instructors. This is key to overcoming obstacles. Signing up for office hours and informing someone early if you are feeling behind or confused can make all the difference.
- If you have a question, speak up. It’s hard to ask questions in a group setting. But if you have a certain question, others probably do, too. Or your question might reveal important subtleties no one else has thought of but that everyone will benefit from.
- Accept that programming is a social activity. Being a successful programmer is less about being the best at technical tasks and more about being able to work well as part of a team.
Optimize Your Learning
- Don’t worry about memorizing specifics. Coding isn’t about rote memorization. It’s about understanding concepts and solving problems. Everyone looks up everything all the time. That being said, having a good “vocabulary” will help you know what to look up.
- Look for alternative information. Deeply understanding a topic doesn’t come from only one explanation or one exercise. Seek out other explanations, perspectives, and facets. Every new angle sheds a little more light and dispels a little more confusion.
- Practice makes perfect. Passively consuming information (reading, watching, or listening) isn’t enough. You have to actually try it yourself. Only then do you discover the gap between what you thought you knew and what you actually know.
Be Gentle with Yourself
- Don’t compare yourself to others. People tend to see their own weaknesses and other people’s strengths. Every student at Fullstack and Grace Hopper Program has a different background. Some might have experience in HTML & CSS, others understand data structures & algorithms, while someone else is great at SQL or HTTP. What ultimately matters is whether, at the end of the day, you know more than you did at the beginning, not whether you know more than someone else does.
- Pursue your passion. If you find something particularly interesting, pursue it! Maybe even write a blog post about it. It’s sometimes better to be an expert on one thing than to have a beginner-level understanding of everything.
- Allow yourself to like what you like. Coding has many approaches, styles, trends, tools, philosophies, and opinions. Try to understand and gain insight from all of them, without taking any as absolutes. It’s okay to like something even if someone you admire espouses a different approach. Try not to discount anything, especially without trying it yourself for a while (just trying something once isn’t helpful).
What Experience Did You Have Before Joining Fullstack Yourself?
Tell us about your background. How did you get into software development and then teaching?
Making His Own Computer and Calculator Games
GL: I became interested in programming at the age of twelve. I wanted to know how to make computer games, so my father gave me the manual for QBASIC. I made some games for both the PC and Ti-83 calculator, and during high school also taught myself a little C++.
In college, as part of my mathematics & studio art double major, I took introductory computer science. Shortly after graduating, I created a few freelance websites with PHP and JQuery snippets.
First Teaching Experience
For a number of years, I studied and worked in healthcare. I did less programming but more teaching. I was a chemistry teaching assistant, and later the primary trainer of new technicians in an ophthalmology practice.
Attending Fullstack Academy
Fullstack co-founders David and Nimit ultimately offered me a role as a full-time instructor, which turned out to be a natural fit for my skills and interests, and my passion for both programming and teaching have increased with every year I’ve spent in the classroom.
What Makes a Good Fullstack Instructor
What did you love most about teaching? What are some best practices?
GL: A former colleague of mine, Joe Alves, inspired me with his teaching style and how much he genuinely cared about his students and their success. He used to give this lecture on a particular networking concept (WebSockets), during which he would ask the students to play along by sending messages from their own laptops to an application on the projector.
I thought that was a cool way to make the lesson engaging and memorable. Since then I’ve tried to incorporate more opportunities for active student participation into my own lectures, whether through paired discussion, on-screen polls, mob programming, or other means.
Creating Digestible Lessons
I really enjoy breaking down a difficult subject and developing easier approaches to it. Being a good teacher requires having a good theory of mind—remembering and anticipating what will confuse someone who’s new to the material, and finding the right way to guide a student towards discovering principles on their own.
When I am learning a new topic for myself, and experience that “lightbulb moment” in which it suddenly makes sense, I often find myself thinking: “Aha – if only someone had explained it to me like this!” Getting to re-experience those epiphanies through others is especially gratifying.
Iterating & Customizing
Our students are highly motivated and competent, making Fullstack a great place to be an instructor. Teaching many cohorts in rapid succession also affords the opportunity to continually refine our educational materials, seeing empirically what strategies are effective—such as inductive learning, just-in-time topics, and spaced repetition.
In short, teaching allowed me to share my excitement for these subjects in a way that was helpful to others, and to participate in their growth as capable, independent practitioners.
Grit, Design Thinking, and Space to Experiment
What experience did you get here that you feel will carry over to your new role?
GL: So many experiences!
Don’t Give Up
One that immediately comes to mind is witnessing, time and time again, when a student doesn’t yet understand something but buckles down and pushes through anyway. The first reaction to encountering something difficult should not be to give up, but to keep at it—especially if you have an instructor or senior programmer on hand to help you.
Another key part of my time here at Fullstack that I anticipate carrying forward is the sense of continual refinement and iterative design which we apply to our curriculum. Our academics team is always re-examining the current curriculum with the end user (students) in mind and assessing how we can improve our offering. Focusing on tangible outcomes improvements has made taught me how the design process should be informed by the needs of the users.
Fullstack has also given me many opportunities to experiment with programming paradigms, software engineering principles, product design methodologies, and review processes. Over my years here I’ve seen exactly how different approaches play out, and that has informed my current capabilities as an engineer and product lead.
Fullstack Instructors Are Generous and Inspiring
What sets our instructors apart from those at other bootcamps?
GL: Keep in mind that I’m biased as my co-instructors are not only professional colleagues, but I can say objectively that we’ve been highly fortunate in our hires.
Selective Hiring Process
A couple of our early hires were former Fullstack students and teaching fellows, and so we had six months or more to appreciate their professionalism and ability before offering a role. That’s quite the job interview!
But now that we’re regulated by the state and can’t hire recent grads as instructors (any instructor we hire is now required to have two years of industry experience before joining us), nearly 95% of our current instructor pool was hired externally, after long interview processes during which we turned down many skilled candidates. Being selective can make our jobs challenging in the short term, but the long-term benefits are substantial.
Instructors Go Above & Beyond
Every Fullstack instructor I have had the pleasure of working with is passionately dedicated to the betterment of our students, regularly going above and beyond to advocate on their behalf and ensure they are prepared for the working world.
In that sense, Fullstack’s instructors remind me of those teachers I myself had who took a personal interest in their students’ success. (By the same token, they are unlike the occasional professor I had who was just fulfilling a mandated teaching requirement).
I have been inspired by and learned from my coworkers in many ways, and I am excited to apply all those lessons to my new role.
Ready to learn from Google-grade software engineers who just happen to be incredible teachers? Apply today.