I'm Nader Dabit. I am a web and mobile developer, author, and speaker. Ask me anything!
Hey Hashnode community,
I am Nader Dabit. I specialize in React, React Native, cloud-enabled and cross-platform application development. Currently, I am working for Amazon AWS Labs.
Ask me anything about:
- Amazon AWS
- The JAMstack
- JAMstack CMS
- React JS
- Micro Front-ends
- ReactNative Training
- Open Source
- Other similar topics.
I will start answering your questions live on Thursday, 13th Feb, 9 AM PT / 12 PM ET / 5 PM GMT.
In your roles how have you asked your bosses to give you time to attend conferences? How did you work this out with them to allow you to attend so many? When and why did you realize that this would help you to become a better developer?
Early on I would actually take vacation and spend my own money to attend. I think this all depends on your employer, and for me I was privileged enough to be able to do and afford this.
I can say for sure that it was one of the best decisions I have made. The connections I made, the people who influenced me, the energy that I took in at these events are had one of the biggest impacts on my career.
I think early on, and depending on your employer, it may be hard to find an employer that embraces and supports people attending events. I would say that as your career progresses, do your best to find companies that support this and will pay your way to at least one event a year if that is what interests you.
For a junior developer seeking their first full-time shot, what advice would you give them to help them get beyond the interviewer comments "you're too junior for us."? What did you do to convince people to give you a shot that people you meet often overlook?
I've said and witnesses this over and over in the past: The hardest job in tech to get is the first one, the easiest is every one after that. The goal is to just get your foot in the door, any door, and even do it for a temporary pay cut if possible (I acknowledge this is not possible for many people).
I would say that when you hear that then just do your best to convince someone to give you that first chance. I would also suggest paying a professional to help write your resume.
Also, have an online presence. When you think about it, you're essentially competing with a bunch of people for a job. If someone googles you, you want them to find you. This could be code on github, blog posts, or a portfolio. Just put stuff out there. Clone other repos, make some changes and learn some stuff, then put it up on your repo with notes. This will set you apart from 95% of others.
Also, it's a numbers game. Get a very nice resume and submit it to tens, hundreds, even thousands of companies. The more you submit the better your chances are.
Hi Nader, what led you to build JamStack CMS? What was the inspiration and thought for building it?
One of the things I see happening in the future is the "containerization" of full stack applications for reuse. JAMstack CMS is one of the examples I've released demonstrating it. The idea is that there are a bunch of different types of apps that are very popular yet people pay massive amounts of money to rebuild them over and over. Think about things like e commerce sites, blogs, conference apps, marketing sites, even some dating and social media platforms. What if you could start, somewhere, with 90% of the work done and have it deployed to a service that would scale if you did hit a few million users or more?
I saw this a lot as a consultant. With projects like JAMstack CMS, that contain both the front end code as well as the back end infrastructure as code, you can deploy a full stack scalable application in just a few minutes. This is extremely powerful.
The lack of abstractions that made this impossible in the past are no longer lacking, we have them now.
When you think of how infrastructure and computing has worked in the past, building and replicating full stack applications for reuse across multiple teams and industries was really hard. This was because every environment was different and there is so much complexity when building out individual services and functionality like real-world authentication and authorization, APIs, Databases, image storage, etc...
With infrastructure as code, you can essentially prototype the way you want the back end to look by just writing some code.
You then take this idea and pair it with all of the starter projects we see on the front end and what you have is a new paradigm .
Is there an equivalent to firebase to deploying Nuxtjs SSR sites in AWS? Also, what tools would you suggest if you were to create a CI/CD pipeline? Thank you!
Yes! Amplify Console.
Check out this video to see how you can deploy in 56 seconds :)!
For CI / CD, the tools I would use ATM would be Amplify, Amplify Console (or something like it) along with Git. Amplify enables multiple environments which make it easy to iterate on cloud infrastructure and entire back ends (auth, db, api, etc) .
Also, I work for AWS so I'm biased because these are the tools I work with daily.
Is Micro Front-ends still a thing and who do you think should imbibe this extension of microservices concepts to the frontend world?
Do you suggest switching for a team, company or personal project and if YES, how?
I think that MicroFrontends definitely serve a purpose, but you probably don't need it unless you know you need it.
Yes! I think there's nothing wrong with switching careers, it's normal in tech to be somewhere for only 2 or so years. I always go for the teams and situations where I can learn the most, but I know this is something that many people don't have the privilege to do, so it depends on your circumstance. Taking learning over money in the short term will always lead to more money in the long term.
Hi Nader, Thanks for helping out with react native design system 😁. I see you doing a lot of things like, writing, teaching, etc. How do you manage all this? I am personally feeling burn out while juggling between open source, technical writing, learning and job. What would you advice to manage things in a better way and avoid burn out?
I would check out my answer to the top productivity hacks question for some initial insight.
As far as burnout is concerned, I tend to try to keep this in check and if feeling like it's coming around, just stop doing the thing that's causing the burnout (if it's not part of my job) and try not to stress it. After some time, you'll feel like getting back to it. I.e. i used to get really bummed / stressed if I didn't answer all of my DMs and github issues right away. In reality, we can only do so much and other people should not come before us and our mental health.
How's your experience working at Amazon AWS Labs so far? What core problems are you solving at AWS?
I was skeptical about joining AWS at first. I read a negative article about working there a while back so I wasn't sure how it would be.
I can say now, after being there for over 2 years, that it's the best place I've worked and the culture is phenomenal. I have learned so much and have had the opportunity to be around and work with some of the smartest and most kind people I've ever met, it's one of the best decisions I've made in my career without a doubt. (disclaimer, I can only speak for my team because it's the only place within AWS I've worked).
The core problem we're solving is this: Making it easier and faster than ever to build software at real scale.
Hi Nader, thanks for the AMA. What is your favorite way of deploying serverless applications and what do you think about the future of serverless applications, do you think it is ready to be applied in enterprise application use-cases?
I think that "cloud computing" and even "computing" in general is moving more and more in a "serverless" direction. When I say "serverless", what I really mean is pay per compute and no need to manage your own infrastructure. This is very similar to what you've seen over the course of history and in many other areas of technological innovation.
Think about electricity. In the past, like long ago, you would have to buy and maintain your own power plant or generator in order to have power. Now, we just flip a switch and pay for the power we use and the electric company does the heavy lifting and dealing with the infrastructure behind it. This makes sense.
In the computing world, the real reason for all of the servers and infrastructure is because at the end of the day we want to build apps and create value. We really just want to write code and make our customers happy / create value. The serverless paradigm enables us to do this.
Academic research as well as many people working in the field with large companies and startups building new applications intended to scale will also attest to this.
What is my favorite way of deploying serverless? I see so many awesome options out there!
One thing you'll notice about some people who are in this space is that they'll just push their own thing and try to not acknowledge other tech / gatekeep people from trying other new things. In reality, tools and services like Begin, Zeit, Netlify, Azure, AWS / Amplify, Firebase / Google and others are all really great and serve their purposes really well, plus they are all getting better and better. You should check these as well as other tech out and see what works best for you.
Right now, my favorite ways of building serverless applications, ones that will scale to enterprise level if you need them to, are serverless framework and really anything on AWS. This is mainly because there is a long track record there and massive companies with even more massive workloads have years of success at this point so it's a tried and true tech vs something that's new and has not seen true scale.
Disclaimer: I work at AWS so I definitely have some bias, but I work at AWS for a reason!
Hey Nader, thank you for the ama. I would love to know your thoughts on monetizing a niche technical skill set.
Hey Girish, really great question! I think there's a few ways to do this really:
- Courseware / courses / videos / books / etc..
- Traditional job market
You don't have to choose just one of these, in fact they seem to all kind of blend in after a while (especially the first 3).
Depending on how comfortable you are going out on your own, you may even start doing one of the first 3 while you still have your full time job.
I would say that I see the most benefit right away coming from consulting but the better long term revenue stream is probably online courses and videos.
That being said, consulting also offers the opportunity to travel and grow your network, so I think it depends on what you like to do and where you are in your life.
In my experience, I was able to ramp up to $400k/year consulting and my business was growing but I personally wasn't growing. I chose to join my team at AWS because of the tech that they were working on and the team that I was going to have around me. A lot of potential for growth and to learn new things. One day I'll probably get back into consulting / training / courseware.
What are some developer tools that you can’t live without?
I am somewhat of a minimalist tbh, but here are the things I use on a daily basis (for my particular job):
- VS Code
- Photoshop (yeah I'm old school, but it just works for me)
- Keynote for slides
- Trello (personal and work)
Other tools / NPM packages / JS libraries / frameworks / etc that I either use or am excited about:
Hey Nader! What are some of your top productivity hacks?
Hey, this is especially interesting to me because a lot of people ask me "how I'm so productive" yet I'm constantly feeling like I'm procrastinating. I do my best to be productive, but it takes a lot of effort for someone like me (ADHD bad!). Here are some things that work for me:
- Everything is on my calendar (exercise, lunch, downtime, writing, etc). This keeps me focused on what I should be doing at the moment
- Close all social media / slack / phone when I have something that I'm working on that needs my focus
- Lists (to do lists ,that I usually keep on trello, and visit every day to see what I need to do and prioritize)
- Keep in mind that I should not worry about the big picture on large projects, just focus on one thing at a time and over time the entire thing will be complete if I just keep working.
- Meditation / stoicism / mindfulness / buddhism - These ideologies and ways of thinking help me a lot in general
Thanks for answering my earlier questions! Here is one more: What’s your opinion on publishing content on one’s own domain vs giving it away to other platforms like Medium? Do you think developers should push themselves to have a personal blog first?
I like Medium / Devto because I get way more traffic! I think if you're someone like Dan Abramov or someone with a massive following you can get away with publishing on your own domain and still getting a ton of traffic.
Also, if you self publish for a while and bulid a name for yourself an audience you can probably get a good amount of traffic.
The other thing is the content, whether you own it or not. With Devto it's just markdown so it would be easy to also replicate it on git somewhere just in case!
Hi Nader, This question is regarding Serverless stack. As serverless functions (Google functions) scale as there is a demand infinitely, what measures we can have to make sure to fight against DDoS attacks.
Does having a reverse proxy to handle this is an overkill? I see the scaling is now limited by the reverse proxy but till how much traffic a reverse proxy in Ngnix can handle?
P. S. : Google doesn't have a proper, affordable DDoS shield and Rate Limiting options.
Hi Nader, over the last year you've been visiting events in countries like India, full of ambitious developers but with less developed tech scene. How do you remember these expriences? What are the key things you were able to learn thanks to them?
India in particular was just way way more fun and exciting than I expected. I've never met a group of developers who were as energetic and motivated than at React India.
I learned a lot and made some amazing connections there. I've been watching some of the people and what they've been doing since, and the scene there is just exploding. There is a huge passion there for learning and teaching, I can't wait to go back to India.
I would also like to visit Lagos, the tech scene there is exploding and there are so many people I've connected with virtually that I'd like to meet there. Also looking forward to going to China this year!