blog article

Instructor Spotlight: Joseph Alves of Fullstack Academy

By Imogen Crispe
Last Updated June 7, 2016


Joseph Alves was a self-taught PHP and JavaScript programmer for five years before he stepped into an instructor role at Fullstack Academy in NYC last January, so his unique perspective as a teacher is crucial to anyone considering learning to code at a bootcamp. Joseph describes the “ideal” Fullstack student, how practice can often outweigh theory in programming, and why Fullstack Academy recently switched from teaching MongoDB to SQL.


Tell us about your programming experience before you became an instructor at Fullstack Academy.  

I’m different from the other instructors, in that most are either Fullstack alumni, or they have a computer science background. I studied psychology in college and got into programming through gaming. I learned to code on my own and started a side business with a graphic designer.

I started making websites for local restaurants and salons in New Jersey, dropped out of college for my first PHP job, and a year later, got a job at a law education company specializing in JavaScript. I started leading meetups, conferences, and talks – any opportunity to teach programming. That eventually led me to Fullstack co-founders David Yang and Nimit Maru.

How did you learn to code? How did you teach yourself?  

Sleepless nights! The online resources out there now are incredible, but at the time, I used what was available to me. I learned with, found videos on YouTube and started practicing and building things on my own. I credit most of my learning to figuring out problems for things I wanted myself and my friends to use. I'd build things for fun, struggle, and spend weeks on something that would take me a couple of hours now. That's how I learned and internalized all this knowledge.

Did you have any teaching or mentoring experience before you started teaching at Fullstack?

I had a bunch of public speaking experience from meetups and conferences. I also trained other developers on my last job, and did some consulting with remote developers. It felt natural to go into teaching. Working in any programming job, you see ways to improve your own code and others’ code. That translates well to teaching a beginner how to code, finding problems in their code, and how they can stylize, and write more elegantly.

At Fullstack, I’ve learned how to be a mentor. We spend a lot of time meeting with students one-on-one, hearing them out from a technical and a mental health standpoint, to make sure everything's okay and they're keeping pace.

How did you pick up JavaScript and what's your experience in that?

I was always doing a bit of JavaScript, PHP, HTML and CSS, since I started building web apps. At my first development job, where I got hired to write PHP, every developer specialized in the backend language, and knowledge of JavaScript and JQuery, was secondary to everything.

But I was at this job when the era of single page apps began, and working in JavaScript, front end, and the browser became a more serious practice. So I took the initiative to be the specialized JavaScript person. From there that became my thing. Then I got into Node which meant I could write JavaScript on the backend too.

What is your role as an instructor? Are there specific classes you teach?

All the instructors at Fullstack do a bit of everything. Currently I'm teaching the Junior Phase which is the first half of the immersive curriculum after foundations. It's a very structured, very scheduled phase, with many little modules. My role is lecturing, manning workshops, taking students through example projects, then reviewing solutions, and giving advice on how to solve problems. And we do that pretty methodically for about six weeks.

I've also taught many Senior Phases. That's where we take all the stuff we've learned in the Junior Phase workshops, and apply it to building projects. My favorite part at Fullstack is the practicality we get from the Senior Phase. The first project students work on is an e-commerce store, where they get to actually see the technologies make sense together. To see the progress students make between then and their final projects is exciting every time.

What kind of projects do you like seeing students work on?  

I'm a big fan of students writing games for their final projects because nearly every game you build is full of complex logic and performance complications. The aim of final projects is not to build something usable, marketable, or lucrative but to build something challenging. And that's where they learn the most, I think.

How are you and other instructors involved with the Fullstack curriculum?

Absolutely. The whole academics team and all the instructors, we work like a hive. There's nobody at the top making the decisions. We are very collaborative and put a lot of teamwork in to get things done. For this current cohort I am teaching Junior Phase with Ayana, Omri, and Ashi, we have just completed a full overhaul of our curriculum from MongoDB to SQL. It was a lot of work, and we’re really happy with the results. It was a decision we were trying implement for a while, and it went really, really well.

Why move from MongoDB to SQL?

A huge switch like this from MongoDB to SQL doesn't happen often, but those decisions and changes get made when we realize the industry and the adoption of those technologies is swinging a certain way. There are many reasons, including how this will affect students’ ability to find a job in the industry. MongoDB is definitely less common in the industry than SQL. And that's why we made that switch.

Do you make those curriculum updates often?  

We constantly make curricula updates to improve the quality of each module. As technology changes during each cohort, we may add or remove a certain technology to the curriculum. For every new cohort, Fullstack has a slightly modified and hopefully improved version of the curriculum based on what we had on the previous cohort.

We have a great internal tool called LearnDot, which a bunch of fellows and instructors work on, and we use that tool to update and deliver the curriculum. We're aggressive about trying to keep it current, modern, and the highest quality we possibly can.

How many members of teaching staff are there?

Counting David and Nimit who also still do some instruction, we have about 14 or 15 instructors and teaching staff across Fullstack Academy and Grace Hopper Academy. Fullstack and GHA are separate schools but we run the same curriculum, and we have a lot of the same support systems, and all of the teaching staff interact with each other. Our engineering team who works on internal products will all at some point interact with students via lecture or in some way. Even the head of product will give a talk in the Senior Phase about either UX Design or Project Management.

We also currently have 14 Fullstack Fellows. Fellows are alumni who applied for a fellowship that involves them mentoring our classes.

How does Fullstack Academy compare to other coding bootcamps?

A lot of bootcamps are bigger than us, and a bit less intimate than Fullstack. At Fullstack, we have an instructor for every ten students, not including other teaching staff like fellows. So you get a lot of individual attention in this very intense curriculum which is constantly being iterated on. It's not a factory; it's very personal and the people who work here really care about the students.

What is your personal teaching style?

I find myself in my element when I am lecturing. I'm pretty reserved otherwise, but I’m very energetic when I lecture, and I perk up a lot when I teach!

I don't have a theoretical or academic background in computer science, but I have a lot of practical industry experience. And that's how I would define my teaching style – practical. I like to give people the strategies and approaches to allow their vision to become real, as opposed to emphasizing the theory or the underlying workings of things. Theory is extremely important to the craftsmanship of programming but I think what sets a bootcamp apart from a CS degree is this practicality. I think that's where the “wow moments” in programming come from.

How many students do you have in a cohort or that you're teaching at one time usually?

It varies on the time of the year, and it depends on how much time we have for admissions, and the strength of the candidates themselves. Currently I am teaching about 30 students at Fullstack. Our current Grace Hopper cohort is also about 24. It tends to fluctuate in that range.

Right now we have two Fullstack cohorts running. One in Junior Phase and one in Senior Phase. And we have a Grace Hopper cohort right now in the Junior Phase. Our plan is when this Grace Hopper cohort becomes senior, we will also have another Grace Hopper cohort start in the Junior Phase. So soon we will have four running at the same time.

How many hours a week do you expect Fullstack students to commit while at bootcamp?

At a minimum, they’re in the classroom from 9:30am to 6:30pm with a mid-day lunch break, five days a week. We also have a curriculum that runs on Saturdays called CS Saturdays, which is our opportunity to get under the hood on computer science fundamentals.

Most students in the Junior Phase stick to that schedule and pace themselves. But in Senior Phase, they really get into their projects. They get very motivated and will typically pull late nights or work on weekends. What they build is dependent on how much time they devote to the project.

How do you assess a student's progress to make sure they're keeping up with the rest of the class? Are there tests at Fullstack Academy?

We have many checkpoints throughout the curriculum. The first checkpoint happens after Foundations, which is the first four to six weeks before students arrive on campus. In total, we have about six checkpoints, to varying degrees of importance. Most of them are self-evaluation, and the instructors will also take a look at how they did and give feedback. Some checkpoints have more significance in that if you do poorly, it gives us notice that we need to give you extra attention or work with you one-on-one a bit more.

For those more significant checkpoints, students have the option to redo that checkpoint, with the same concepts, and different content. If the student doesn't do well on either of those, we will give them a chance to catch up, redo foundations and get ready for the next cohort. And this usually helps everybody – coming back later when they’ve had a bit more time to absorb.

What type of role do you have in job placement and career coaching?

In Senior Phase, when we are approaching Hiring Day, the career coaches meet with all the students to get an idea of their ambitions, what industries they want to work in, what they were doing before, and how to leverage their strengths. Students also do resume workshops, LinkedIn audits, and mock behavioral and technical interviews.

If people want extra help, the career coaches connect us. For example, I recently met with an alumni for two hours, who had graduated back in March, to get a sense of what he was looking for in his job search and prepare for him for an interview he had coming up.  

Have you found an “ideal” Fullstack Academy student?

I don't work in admissions but I do have a strong opinion about this. I feel like the background of the person isn't as important as their motivation and work ethic. We've had people at Fullstack from prestigious programs like Yale, Harvard, Cornell. On the other hand, we've had people who had dropped out of college or not even gone to college. The outcome, their quality of work, how quickly they learned, and their aptitude, had nothing to do with what they had done before. It was all about how hard they wanted to work and how much they want to learn how to code. So I would say the perfect Fullstack students want to work really hard and are ready for this kind of intensive curriculum.

What happens in the Fullstack Academy interview and admissions process? Do they do a coding challenge?

After the initial application is reviewed by our admissions team, there is a coding challenge which includes problems that can be completed in JavaScript, Ruby, or Python. Then there is a Skype interview with the admissions team to go through a coding problem with the candidate. It's up to the candidate to solve the problem, explain their thought process, and we evaluate the candidate’s understanding and aptitude for programming.

Do you have any resources or meetups you recommend for people who are thinking about doing a bootcamp?

Fullstack Academy holds a lot of different admissions prep and more generalized meetups and workshops over the weekends. For somebody thinking about going to a bootcamp who doesn't know much programming, I wouldn’t recommend typical Angular or a NodeJS meetups - it’s hard for beginners to garner anything from deep talks about the stack and the technology.

Instead, I recommend tech meetups which are more networking based where you have pizza and beer and talk to other like-minded people. A lot of those people – because bootcamps are now such a popular thing – will have been to a coding bootcamp, maybe even Fullstack, so you can talk to them, ask about their experience, and figure out if it's right for you.

Is there anything else you’d like to add about Fullstack Academy?

I want to emphasize that aptitude, and an attitude of working really hard, is much more important than experience. What you need to get into Fullstack can be learned in a few months. Using resources like Codecademy or Code School to learn the basics is a great place to start.

Find out more and read Fullstack Academy reviews on Course Report. And check out the Fullstack Academy website.

About The Author

Imogen crispe headshot

Imogen is a writer and content producer who loves writing about technology and education. Her background is in journalism, writing for newspapers and news websites. She grew up in England, Dubai and New Zealand, and now lives in Brooklyn, NY.

Not sure what you're looking for?

We'll match you!