Year-End Discount: 10% OFF 1-year and 20% OFF 2-year subscriptions!

Home/Blog/Why I use Firebase for everything I build, and you should too

Why I use Firebase for everything I build, and you should too

Feb 06, 2020 - 17 min read
Cameron Wilson
editor-page-cover

At Educative, we get to chat with developers from all over the world, get to know their story, who they are, and what inspired them to become developers and teach those around them.

Today, we sat down with full-stack teacher, Eric Wallenand, and got to learn more about his career. Here’s what he had to say about the exciting world of Firebase, BaaS technology, and the day-to-day of a full-stack JavaScript developer.

Here are the topics we discussed:


Master full-stack development in half the time

Eric’s hands-on lessons and examples teach you the full-stack techniques you need to succeed.

Full-Stack Web Applications with Firebase


Introducing Eric Warren

After graduating from Galvanize I was offered a job at Trilogy Education teaching full-stack development. I acquired 300 hours of in-classroom experience teaching to 30 or more students at a time, and 2,000 hours of one on one teaching experience.

Through that, I learned how to tailor instruction in a way that students learn and understand the material in great depth.

Journey to full-stack developer


How did you get your start in programming?

My passion for technology started young. Initially I just loved making art. I spent a lot of time drawing and painting. I wanted to animate something so I downloaded a trial of Flash on my dad’s computer and started learning it. I made some cool animations! It wasn’t long before I tried my hand at website design. I was pretty good at that too. I also realized that doing this was a way to generate money while doing something l loved.

I spent several years freelancing until I realized HTML, CSS or knowing your way around a CMS like WordPress wasn’t enough. I wanted to learn API’s, React and REAL application development so I applied and was accepted to a prestigious coding bootcamp called Galvanize.

I studied as hard as I could and eventually all my efforts paid off when I landed a job at Trilogy Education teaching full-stack web development. I did that for two years then became the lead developer for Semester at Sea.

It took me twelve years to get where I am now but it was well worth it. My reward is that I get to do what I love every single day!

Online courses and in person bootcamps have come a long way since I started down my path. Right now is a great time to start programming!

I say that because the demand for developers is at an all time high and there are also great courses available today that you just couldn’t find even a few years ago.


What have you learned from your years of teaching? Has teaching made you a better developer?

Teaching 100% makes you a better developer. Instead of relying on documentation or your GitHub repositories you start memorizing everything. This naturally happens because you want to present it to students more confidently. Every Language, SPA and database that I know I write from scratch and very rarely have to access documentation.

If someone gives you an opportunity to teach when you are a junior developer you should definitely take it.

It can be stressful and intimidating but well worth it in the end.


What was your experience like at Galvanize? What are some tips you’d give to someone considering a coding bootcamp?

widget

Galvanize was awesome! I had already mastered HTML and CSS before I attended. I was able to focus all my energy on JavaScript, Node, and React. This was really helpful.

When learning to code you are always leveling up. It’s something you have to be passionate about because you aren’t going to master it in a few months or even a few years.

It takes time and dedication. I felt bad for some of my fellow students at Galvanize because it was a lot of information for anyone new to programming. A lot of people buckled down and absorbed the material but others realized that programming was not the right fit for them. It was a costly mistake for some of my comrades.

I recommend doing a lot of research and online courses before you decide to join a Bootcamp. Even with my previous knowledge, it was one of the hardest things I have ever done.


Eric’s current work and projects


What interesting projects are you getting to work on right now?

For Semester at Sea I am making a really dynamic financial aid calculator. It calculates potential money awards, tracks and saves your progress as well as allows you to schedule an appointment with one of our advisors. I am also replacing legacy payment processing systems in the programs that we have students upload passports, dietary restrictions and things like this in order to be ready to sail.

To satisfy my desire to teach I work on Full-Stack Code Camp as often as I can. Usually in the morning before work or on weekends.

This teaching platform is my method of helping people skip some of the useless things I learned but didn’t need to. My goal was always to make amazing apps with as little effort as possible. Now that I know how to do this I want to share that with people.

Students have told me more times than I can count that explain things in a way that makes sense to them. I have been known to take multiple approaches to tackle one topic.

Everyone is different and this is how I learn too. I read the documentation. I buy a course. I talk to a friend. I try to build an app. I read the documentation again. It’s a process. None of us understand something the first time we read or hear it. That’s simply unreasonable.

If you end up taking one of my courses and don’t understand something shoot me a message because I will help you out until you understand the material. I will even make changes to a course based on feedback. The best teachers are people willing to learn and iterate. I am certainly no exception to those principles.


As a full-stack JavaScript developer, what does your day-to-day look like?

I pretty much code all day but that’s actually exactly what I want. I love it and it makes the time fly. I have a lot of freedom to choose the technologies we use. I am really into UI/UX and I believe a focus on what’s best for the user is what we should always focus on.

After I build something I ask everyone for feedback on the product. You would think this would open doors for people to say weird things but the feedback I get is almost always helpful. I use it to make the product better.

I also teach at work. For instance the other day I was helping a colleague understand the main differences between React and Angular.

At his last job, they used Angular. I am implementing React on all the projects here. It prompted him to ask me what the differences were.

I have also on a few occasions explained how Node, Express, and MongoDB are similar to using Firebase but that one requires less code to implement and is provided as a service.

I wanted them to know that both technologies are great options but based on how small our team is I felt that it would be better to use Firebase. I was able to move them to my way of thinking and they are happy with the products I have implemented with technologies we chose.


Firebase deep-dive


You seem to be very passionate about Firebase, what do you love most about it?

widget

If you have ever done authentication from scratch you know how hard it is. Once I used Firebase authentication I was sold on Firebase.

The ease in which a user is authenticated coupled with the security you can add to your database is nothing short of amazing. Firebase has so many services that it can feel overwhelming but every time I learn a new one I am pleasantly surprised at how easy it is. My passion for Firebase continues to grow every day for this reason.


What interesting projects have you built using Firebase?

FullStackCode.camp is built with Firebase. I also built a handy NPM package to help implement Firebase in React easier. It’s called firebase-camp. It’s in use on FullStackCode.camp. Everything I build for Semester at Sea is built with Firebase. Oh yeah, littletodos.com is built on Firebase.

I actually teach how to build that exact same app in my course Full-Stack Web Applications with Firebase. I wish I could name more but I like spending time on a few good apps instead of spreading my attention across a lot of small ones.


At what moment did you say, “I need to be using Firebase”? What pain points or challenges were you experiencing?

Galvanize taught me authentication from scratch. I am happy they did but only a handful of us understood it.

I was helping my friends that struggled with the content and was able to help them authenticate users in their apps but it was still painful for them to implement. With anything difficult, I get really interested.

I started looking at other methods of authentication so I could help my friends out. I found Firebase Authentication mentioned in a few places around the web. I tried it and instantly loved it. I never taught anyone how to authenticate from scratch from this point forward.

I believe we should focus on the unique features of an app not something every app has. Every app needs authentication. Why shouldn’t it be consistent, easy to use, and delivered as a service?


In what scenarios would you tell a developer they should be using Firebase?

Great question. Can I say all? Just kidding. It’s probably easier to name the reasons why you may not want to. There are fewer of them. ’

One of the main reasons is if you have an existing app that’s built on an SQL database. In order to get the most out of Firebase authentication, you have to use it with Cloud Firestore. Cloud Firestore is NoSQL so transferring your data from an SQL database could be quite challenging.

For all new apps, in all scenarios, you should use Firebase. For existing apps with databases and data, that you want to rebuild, consider Firebase on case by case basis.


What advantages/disadvantages do you see with Firebase as opposed to building the backend yourself?

Mostly time. If you are able to use Firebase then you are probably going to be smart enough to set up your own back end.

It just takes an enormous amount of time. The time that could be better used making the bespoke parts of your application.

There are some things Firebase offers that you simply can’t get anywhere else. With database listeners, for instance, you could send an email to a user that has made a payment. You could also add a newly authenticated user to Hubspot or some other CRM automatically. These are just a few examples.

Cloud Firestore offers this method called arrayUnion which allows you to push new items into arrays that are in the database! How cool is that? I know of no other database that can do that.

Without that, you would have to make a query to get the array, push something into it, and then you can save it back to the same location. That’s three things you have to do instead of one with Firebase. All these little things Google programmed into Firebase can save you a lot of time.


What common developer needs does Firebase satisfy?

Almost every app needs authentication. This is the biggest one for me. It’s really easy to use and has great security.

A good database is also important. I have used four databases so far and Cloud Firestore is hands down the best in my opinion. Storing images is also something that comes up a lot. Amazon offers something similar to Firebase Storage but I like that you can set up security for Firebase Storage just like you can for Cloud Firestore. It’s nice to have it all under one roof.

Developers also need things to run on the server. Cloud Functions is how Firebase handles these needs. We all need to deploy our apps at some point and for this there are a lot of choices but with Firebase it is as easy as one command from your CLI. It also comes with a free SSL certificate already enabled.


What’s your preferred frontend framework to pair with Firebase and why?

widget

React is leading the SPA in terms of popularity and adoption. That means there is a lot more support available for it in the developer world than some of its competitors. I love React as much as I love Firebase. I focus on Firebase courses because there really aren’t very many out there.

React on the other hand has quite a few good courses. I like to pair them because I can sync Reacts state to collections or documents in my Cloud Firestore database. This makes for a very fast real-time app unparalleled in performance.

I can also use React state independently of Firebase for data that doesn’t need to be persistent. This gives me the best of both worlds.


The future of full-stack


Where do you see BaaS technology going in the next 10 years?

It’s going to be huge. For example, Amazon Web Services (AWS) offers some things similar to Firebase.

Microsoft Azure offers a BaaS as well but it stands for Blockchain as a service.

Firebase is a BaaS meaning back-end as a service. The common thread here is that everything is offered as a service. There is also some overlap with cloud computing as well.

When you see Google, Microsoft, and Amazon all investing in services you know it’s big.

Just like Node was new ten years ago and now it’s what everyone talks about and uses, you can expect the same thing from technology being offered as service.


What’s one tip you’d give to developers who want to go full-stack?

It’s imperative you have skills on both sides of the stack. This makes you much more desirable to employers. It also means you can build your own fully functioning applications.

I have heard some people say that with Firebase a front-end developer is now a full-stack developer, as if magically, but that simply isn’t true. Has a front-end developer ever had to worry about data structures, queries, or security?

My tip for going full-stack is to be easy on yourself. Understand that many developers specialize in one side or the other. That should give you some idea of how hard it is. To be truly good at the entire stack might take several years of hard work and dedication.


Eric’s Educative Course


What about Educative made you say, “I have to build a course on this platform”?

I am all about UI/UX. I really liked the look and feel of the site from the initial touch. As I looked at courses I saw that they were very high quality.

When I took a look at how courses were created I saw tools that no one else had. This is when I became aware that Educative was a different kind of learning marketplace.

The same reason I chose to teach Firebase as my area of focus is the same reason I chose to build a course on Educative. They both have things that others don’t and they both have really nice user interfaces. These things say a lot about a company.

I became aware of Educative through Alex, an Educative talent scout. We met via video chat and I was impressed with him. I felt like Educative was really interested in the best courses. Alex was very easy to talk to which increased my user experience greatly.


What was your experience like building a course on Educative?

My expectations were high based on the site and experience with Alex but to my surprise, I was still blown away. Serverless applications are still pretty new and needed some of their own considerations on their site.

Their team was very agile in handling every need or concern I had. Implementing new features that enhanced the course dramatically within days of first awareness. I felt very cared for. It sounds weird that a company can make you feel that way because it’s not a typical thing but it’s the only way I can describe it.

One thing I really like is that Alex was my only point of contact. He communicated in nearly real-time with the development team and then wrote to me with their comments, updates or whatever else was happening at that point.

This proved to me that the culture at Educative is excellent with great communication and collaboration between departments.

I felt like I was a part of their team without the additional work it takes to communicate with more than one person. I know I am an author of a course and not technically part of their team but this was the feeling I was experiencing.

Lastly, they helped me refine my content with feedback, boots on the ground, and proofreading. At one point Alina, another Educative employee, helped edit some of the course.

Obviously the course was well written but she helped with making it work with the Educative widgets more seamlessly as well as flow and punctuation before being sent to proofreading.

They proofread! Isn’t that cool? All in order that their students get the high-quality experience they deserve.


Closing thoughts


Why should developers learn/use Firebase?

Serverless is here to stay. I saw a job posting that actually said Firebase developer the other day. It’s getting big! It speeds up time and lets you focus on your app.

Have you used the grid built into CSS? If not you should, it’s amazing. Firebase is very similar. Just like we all need a grid we also all need authentication, database etc.

Try Firebase for these common developer needs. You’re going to be really happy you tried it. I use it in everything I build!


What’s next?

Eric Wallen has taken his years of experience with Firebase and full-stack development and condensed it into this comprehensive course, Full-Stack Web Applications with Firebase.

In this course, you will build four applications using Firebase. Each app is designed to teach you a different Firebase service including Firebase Authentication, Cloud Firestore, Firebase Storage and Firebase Hosting.

By the end, you’ll have the Firebase skills to wow any full-stack interviewer.

Happy learning!


Continue reading about web applications


WRITTEN BYCameron Wilson

Join a community of more than 1.6 million readers. A free, bi-monthly email with a roundup of Educative's top articles and coding tips.