I am Brian Holt. Ask me anything.
Ask Brian Holt about:
- Cloud Infrastructure
- Cloud Computing
- Working at Microsoft
- Getting started with programming
- Open Source Ecosystem
This was super fun!! Thanks for all the great questions, hopefully I was able to answer the questions burning your mind! Feel free as always to reach out to me on Twitter!
How to get a job in a big tech company like Microsoft, Google, Amazon, Facebook? And what should I do for it?
My best advice see if you can make friends with people that work at those companies. They'll be able to give you advice on how to pass the interviews, what they ask, and if you want to work there. Sarah Drasner helped me get my job at Microsoft and Derrick Showers helped me get my job at LinkedIn. Knowing someone always helps.
Beyond that, brushing up on your interview skills is essential. Being a good engineer and a good interviewee are (unfortunately) orthogonal skill sets. Cracking the Coding Interview, Code Katas, and all those things that help you reason through abstract problems quickly will help with Big Tech's silly interview process.
Hope that helps!
Long time listener, first time caller. Big fan. Hey so something I always wanted to know: when Luna licks you all over your face when you come home, and Niki makes you wash it, are you sad? Do you wish you could keep the Luna slobber around as a token of affection? You can tell us the truth.
Keep up the great work! -Drazzo
Hi Brian! Thanks for doing this AMA. I am a huge fan of your work.
This question might be a bit out of context, but I want to hear your opinion as a developer and not as a Microsoft employee.
Q: What's your thoughts on Microsoft acquiring Github?
Hey Jill! I'm a huge fan of your avatar.
Real talk: with the landscape as it is today, I think it was the best landing place for GitHub. Satya Nadella's Microsoft is pretty heavily committed to not losing your trust and we all know if that we mess this up that we lose everyone's trust forever. From my perspective (I don't know anything more about it than you do) this acquisition was about acquiring more good will from developers, really cementing our new stance of being a developer-first company.
What you could be worried about is what happens post-Satya Nadella (again, I don't know anything more than you do, just speculating.) Companies change and maybe some future CEO wants to monetize the hell out of it and ruin it in the process. But for now, for today, I think Satya Nadella and Nat Friedman are going to GitHub in a great direction.
Here are some of my questions.
What are some of your suggestions for new developers for learning streaming based cloud apps? (like netflix)
What's your opinion on future of cloud ? (As in where it is going with changes in AI and ML and cloud along with privacy aspect)
How do you learn any cloud specific skills quickly? What are your go to resources for learning server side or front end etc?
Build it! Use something like Azure Storage to host video objects and build a site to stream that video from Storage to a front end. I always learn best by building dumb, pointless websites to learn cool new tech.
I see the future of the cloud in containers and serverless. I love containers because I build multiple services, have something like Kubernetes glue it all together and ship it off to the cloud without me having to understand too much what's going on at a lower level. Particularly tools like Helm and Draft are helping container n00bs be productive quickly.
I think serverless is going to continue to grow because it allows full stack devs to be able to be truly full stack and ship powerful features without the full support of an ops team. It allows devs to focus on what makes their business unique and less on administrating app servers. I expect that serverless is going to wending its way into every company's stack.
- Similar to answer one, I build a lot of pointless stuff to learn new tech. I recently built an inventory tracking system to get a better grasp on Azure Event Grid and Azure Logic Apps. For cloud stuff, Microsoft Learn is great for Azure stuff and I've heard good things about acloud.guru for general cloud stuff. For front end, I love frontendmasters.com because they have a mantra of having one high quality course for each subject which is why I continue to teach my material there. For back end material, the limited amount I've taught myself has been either docs or some courses from Pluralsight.
What's in your dev toolkit? (editors prefs, SaaS software, etc).
Visual Studio Code. I used it before I was at MSFT but I just love it. Amazing for writing code, managing Azure stuff, and staying organized.
I love Kaleidoscope for doing git diffs and merge conflicts.
Firefox Stable for browsing the Interwebs.
I write my articles in MacDown for a simple markdown based editor
I have a little Microsoft Surface Go that I travel with now. Great for watching videos, writing a little Node.js and playing old games like Dungeon Keeper II.
iTerm2 w/ fish. I usually work with bash since I teach a lot but man I love fish shell.
Dank Mono font and @Sarah Drasner's Night Owl theme for VSCode.
Good and bad, like any tech stack. It has its tech debt which was painful to work with at times but the advantage is having a lot of smart people always striving for great code together. It's a complicated beast so that did make working on parts of it tough but on the whole I enjoyed writing code there.
What productivity tools do you use in your daily routine?
Google Calendar / Outlook. I use the former for personal stuff and the latter for work stuff. If it's not on my calendar I won't get it done. I have no memory anymore.
Focus (focusapp,io) If I need to be super-heads-down to get something out the door right now, I'll use Focus. I work for 50 minutes and then pause for 8 minutes. I've also found recently that if I listen to music via records that by the time one side has finished I'm ready for a break.
Visual Studio Code. Spending time getting familiar with your editor just helps you fly when you're working instead of hunting for shortcuts. Invest time in your tools.
Way too much paper. I write a lot of sticky notes. I tried to keep it in Google Keep but I just need to write stuff down.
Co-Founder, FutureStack Solution, Full Stack developer having more than 13+ years of experience in web technologies.
I love your work related to front end part. So what your daily day like as Cloud Advocate at Microsoft. How much coding you do everyday?
Hey Jalpesh! Thank you!
My job is fun because it varies heavily. Some days I'm heads down in code all day, writing demos, proofs-of-concept, or product code with the teams on Azure. Other days I'll act as a consultant for internal teams, helping them serve the front end and Node.js communities. Other days I'm on the road and speaking at conference so I'm just trying to keep it together with all the jet-lag!
I do try to code every. Some times that's open source, some times it's for work, and other times it's just me trying to learn something new.
Thanks for the AMA!
What is your favorite open source project and which one do you think deserves more attention?
My two favorite projects are Node.js and Babel. I love what they do and the humans that work on them.
The one that deserves more attention is YOUR favorite project that you use a lot. You should open issues, help them triage their own issues, respond to Stack Overflow questions, and maybe write some code for it too.
I include myself in that. I'm guilt tripping myself.
great to have you here! Thanks for doing this AMA! As a cloud advocate at Microsoft, one of the top cloud providers, how do you actually see the current situation
- at Microsoft - do new projects try to get into the cloud, or value a more traditional approach?
- at other companies - in what direction do you think the server landscape will develop? Will everyone create their own cloud? Will a few cloud-providers become the center of the internet? Might everything develop in a whole different direction?
- in the world of free developers - I, for one, quit my server contracts last month in favor of using Zeit for free as my testing ground, but I also know that some of my personal customers want to use Azure instead of other hosting providers (which is welcome by me, because I prefer my NodeJS server)
The Cloud is very amazing for us developers, we can deploy a server without thinking about the infrastructure at all. What, in your experience, is the type of application which has benefitted the most from the Cloud, yet, and which other applications will probably benefit a whole lot if they transition to the Cloud?
Just today, I read about Microsoft's Project Mu, the latest OpenSource contribution by Microsoft. What do you think about Microsoft going OpenSource in a such an aggressive manner? Do you see any problems, especially for other companies who don't follow this trend? Will people in the future pay for services instead of software? What's your personal opinion: would a world, in which closed source software is prohibited globally, be ideal?
And for the most important questions: Is it already snowing in Seattle? What will you do over New Year's?
Again thank you for taking time for an AMA!
At Microsoft we're all in on Azure. We dogfood constantly so if something is painful for you it's painful for us too. So everything we're doing is going into the cloud. We think it's a good approach because individual teams at Microsoft don't have to worry about data centers and just to focus on product.
I think most companies will host most of the infra in the cloud. I think we'll see the three top players continue to grow (Amazon, Microsoft, Google) because all three are doing a good job of focusing on innovative ways to serve their clients. I don't imagine many companies will create their own cloud but will continue to use public clouds like Azure. I imagine hybrid clouds where things like HIPAA-sensitive data (or any data that must be hosted on-premise) are hosted on-premise and app code is run in the public cloud will continue to thrive too.
Any team that doesn't want to worry about power, outages, physical access, temperature, hardware upgrades, etc. stands to gain a lot from hosting in the cloud. Managing your own metal is expensive and hard. Some companies have the human capital to manage it but most of us just want to write our code and focus on that. Anyone like that is going to benefit from hosting in the cloud.
I love open source. I'm stoked Microsoft is leaning into that. We all get to learn and improve together. I hope to see companies like MongoDB continue to thrive where their product is open source but they're a commercial entity backing it up. I think those that don't open source their products are missing out on the power of people who want to solve their own problems. What if I need a feature in your product that you don't have yet? I can build it for you, I get what I want and you get free features.
I don't think we should prohibit closed source software. I don't see a compelling reason to do that.
It's raining a lot! But no snow. I'm heading to Salt Lake City on Sunday though and I'll be snowboarding up at Snowbird! For NYE we'll find some fun bar in Capitol Hill in Seattle to ring in the new year.
Hey, Brian; another Seattleite here! Cheers from U-District and thanks a lot for the AMA!
I am going to digress here from the core topics and ask something about Microsoft's recent involvement in the Linux Foundation and the patent infringement claims made by Microsoft against TomTom for using GNU and Linux. While I am aware that this happened a while back, I want to know why did this happen in the first place. Linux is something for the community and by the community so what's the need to file for IPR violations in lieu of just supporting the development (which is happening right now, after oh-so-many lawsuits.)
And do you think that the announcement of the Sphere OS means anything to the Linux community? The reason why I am asking this is because unlike other Linux-based operating systems, Sphere OS requires Visual Studio for development; this tightly-coupled architecture is one, I would say, bad in taste.
I hate to give a non-answer but I just don't know anything about either thing. Legal is totally outside my wheelhouse and above my pay grade but in general it makes me sad to see companies litigating over Linux.
I'll look into the Sphere OS stuff too.
On the whole, if it's bad for devs you can expect to see Satya Nadella shut it down. Trust is won in drops and lost in buckets and Microsoft is out to earn your trust. (more-or-less a quote from Scott Gutherie)
Oh, alright! I can understand!
Yeah, we have seen some improvements when it comes to Satya Nadella; Microsoft has really started taking the Open Source community seriously and that is a step in the right direction.
One thing for which I really respect Microsoft is this: their development tools are available for everyone to use and contain all the features you might require (VS Community is honestly more than enough for most, if not all, developers). So, with the recent GitHub acquisition, let's hope we see free private repositories and a bunch of other cool stuff!
Hi Brian, I'm a huge fan of your Comp Science in 4 hours book! It was the truly amazing with no BS. :D
> My Background:
I'm mainly a JS dev, been a Junior dev for an year now, I've completed YDKJS Series, JS Allonge, Will Senatnce and your JS Courses (all of them) on FrontEnd Masters.
> My Goal:
I wanna be an OS Contributor but am having a really really hard time making sense of code that i havent written
> My Question:
I've heard people saying i lack practice but how do i even practice something like that? i just cant find anything anymore that can help me.
Thanks a lot for reading, have a great day :)
I think the first thing to say is that it's hard. I don't think it's not going to be hard. It's hard to enter someone else's mindset and try to understand what their intent was when they expressed that code.
My process (which may not be the best one) is generally I try to get the project to build and to get the tests to pass first. Once there, I try to pick off a seemingly simple issue to try and figure out or at least understand better. I'll try to find the tests that test that part of the code and read the tests. The tests let you know how the code is intended to work. If it's a bug, I'll write a test case that captures what is broken. I'll then open a PR with just the test case. At the very least, you'll help the core devs by helping them see what's broken. If I understand it enough, I'll try to fix the bug too.
One piece at a time. Learn by being task driven. Don't try to boil the whole ocean at once.
How did you get into Microsoft? I am sure it must be a long journey, but can share it in brief? :)
It is a long journey! The shortened version is that I started working at LinkedIn post-Netflix and didn't really enjoy the work I was doing. I was going to move to another team internally but then I saw @Sarah Drasner at a conference in Tel Aviv and she convinced me to transfer to Microsoft proper to be a cloud advocate with her. Best decision ever. I love this job.
Hi Brain. Thanks for AMA.
My question is related to your employee.
Did you have a technical or skillful vacuum after hiring in the Microsoft? and how did you fix it?
I did have a gap in my skills. I've done a bit of operations stuff but never a lot. I had to learn a lot quickly about the operations side of things, learning things like Kubernetes, Docker, and all the Azure offerings fairly quickly. I love it. I love someone else paying me to learn cool stuff. I'd do this in my free time anyway.
I fix it by building random weird projects. Often I'll take the dumbest startup idea I can think of in three minutes and try to build it. It's fun!
Hi Brian! Thanks for taking the time to do an AMA!
My question is coming from the perspective of an intermediate dev who'd like to be senior someday.
With the rapid growth and change across the stack, I find it hard to feel invested in learning one framework over another when in a few years time the landscape could look completely different. I'm concerned that large chunks of my hard-earned knowledge will become outdated.
The answer to that concern is often "focus on the foundations" (languages, stuff like APIs, and CompSci concepts) which is admirable, but not necessarily helpful when job searching, especially early in your career. Most of us are crunched for study time, as well, so it's good to be smart about where you put your focus.
What are your thoughts on frameworks vs foundations and how to balance staying current but also thinking long term in the current industry?
My advice is work on what fascinates you. For me, interest is always a precious and fleeting commodity. If I can either play PS4 or write code, if I'm trying to learn something I'm not stoked about I'm going to play PS4. But if I'm itching to learn more then I might forgo games/Netflix/whatever to write code.
So do you want to learn Vue.js? Then do it! Vue may go away some day but you'll learn patterns from core Vue that will stick with you (their reactivity model is amazing!) Want to learn deep JS fundamentals do that? Don't want to learn TypeScript? Learn it later when someone will pay you to do it.
Be curious. Chase whatever tickles your brain the right. As someone hiring you, I'll hire the curious person who does cool stuff in their spare time over the person who happened to have a little more experience in our framework of choice.
That's very reassuring that I'm on the right track.
I do generally choose projects and studying that interests me, or is at least a doorway to something that interests me.
You've also reminded me to shift my perspective a bit toward curiosity and away from obligation, which is often enough to get something kickstarted. There is indeed always something to learn on any project that's interesting and will build toward deeper knowledge.
Thanks for your insights!
I am web developer with a special crush on blockchain technology and having affairs with node.js and react.js.
Hi brian, I have two question
- What about the graphQL? Does microsoft uses it in any of there product or services.?
- Always bet on JS. It's a super productive language that's just getting better. It has a lower barrier to entry which means it's welcoming to newbies and people from other languages while still having higher level constructs like closures, first class functions, and generators which allow for beautiful abstractions. I think JS will be here for decades to come.
- GraphQL is great. I think we'll see it continue to expand across companies and be more common going forward. Microsoft is indeed using it in production.
Hi Brian. I'm also a big fan of your work and I've been inspired by some of your materials on programming (React to be more specific) What are your opinions on using GraphQL over REST for building API services?
Big fan. I think GraphQL is going to continue to catch on. It yields control of data fetching from the back end team having to build new APIs for every new page to the front end team that they can request the bare minimum they need to get a page running. I find it to be more of an organizational and human win than a tech win.
Hey, Brian! How do you do? I have an issue, I'm always afraid of publishing my code or personal projects due to a fear of being judged. This makes me feel like a fraud because I literally have nothing to show for. How do I overcome this?
We all release terrible code all the time! Check out this hot garbage:
Just release it. Most people would love to help you and understand that clean code takes time and multiple people to get right. And screw everyone else.
Hi Brian! Thank you for doing this AMA, hope you're doing good.
I want to start an open-source project related to public transport and e-ticket systems, but I don't know how to find developers that may be interested in the project, and what makes an open source project a good project that you can easily contribute into. (For example, we can't really use Trello to divide tasks, but GitHub Projects is messy too, or I don't know if I need to create a Code of Conduct, what to include in README, etc.). Is there any resource that helps developers create these assets for projects, and any platform where I can find some buddies to help on the project?
(Totally off but in case someone is interested, here's the project's GitHub page )
I think you're on the best track right now: just write code. As devs, we're bombarded all day with people that want us to write code for them. Jem Young put it best when he said it's like asking people to listen to your mix tape.
Instead, your best bet is just to get something working. People will see that and want to contribute to it. I'd say organize via GitHub, even if it's a bit annoying, because people can look at what you're doing, what you're planning on doing, and contribute directly to that.
Beyond that, you just have to be a @Sean Larkin: just talk about it all the time. Apply to conferences, meetups, and just talk about what you're learning by doing it. People will be drawn to that and want to contribute.
Good luck friend! Looks awesome!
Not sure if I'm allowed two questions but I'm curious what your stance is on making F/OSS sustainable, if you have any thoughts/opinions on the subject!
Oh man, I wish I had a good idea for it. OSS maintainers deserve more than they get. I think Open Collective and Patreon are great platforms so that maintainers can recoup costs and have some people like Henry Zhou can go full time on projects like Babel.
We, companies like Microsoft, need to donate more. And I think that'll go a long way too. I'd love to see more companies like Formidable give employees 20% time to go work on OSS. That'd be amazing too.
Out of curiosity, I saw a project that basically enables users to file issues and receive support if they pay for it. I don't remember all the ins-and-outs (don't even remember the name of the project) but do you think if we, as an industry, promoted this type of behavior across the board, would see OSS become more stabilized? For example, having to pay for support for 50 libs (even at $5 per month) will get out of hand but if we collectively donated like $5 per month and then a committee/org oversaw funds going to actively maintained projects, that would be more feasible for everyone. I don't know if you'd be willing to comment since this AMA is finished but would be interested in this type of discussion. Collectively, we could get a lot more done (I assert, at least) instead of donating to individual projects (but, not replacing those financial contributions/donations either).
Hi Brain !, am Samuel
what are the best ways to increase your problem-solving skill?
What skill do you believe it pays off in the long term for software engineers starting out.
How should programming be learned for deeper understanding?
I love your course on the frontend masters. It's great!!
Hey Brian, I hope you're doing fine. First of all, I want to thank you for all the workshops you did on FEM, especially the CS, this workshop got me covered, cuz I'm not a big fan of studying at school, I love to learn and practice my own.
Here are the questions:
1) I wan to run a startup, that should be purely working on making people's lives better by making some really great quality & useful web apps, but the problem is, I'm trying to get a list of problems of the web, that needs to be solved yet, I did a research but I wasn't able to come up with a good list of issues, I want to do something that helps all types of people. It would be great if you can help me with your experience, how to track the real-world problems?
2) I'm a big fan of you & your iTerm theme as well, Can you please let me know which iTerm color scheme were you using at the time of recording React Intro v5/ React Intermediate v2 at FEM?
Thanks have a nice day 😊
Thanks for doing AMA. Two quick questions;
Is there any major cultural shift that took place in Microsoft after Satya Nadela took over? I meant from an Employee perspective,
How's the scene of Microsoft entering into Smartphone Market? I see they're planning to build their presence in the whole consumer products.
Hey Brian! What's your stance on the current state of JS? Are we working too hard to make JS work to the capacity that we are? Should we consider offloading some of the burden to things like WASM and foster new growth from other communities, as opposed to being our own inclusive community? Hope this question makes sense!
We're at least a few years away before WebAssembly is really available for us to reliably use. Browsers just have to catch up. We'll be shipping unprefixed CSS grid before we're shipping WebAssembly.
That being said, I'm excited to see what we can do with WebAssembly. I expect it to add new people to the frontend community through projects like Blazor and the Go compiler targeting WebAssembly and I think learning from other communities is always a good thing.
I expect we as JS devs will still write code much the same way with perhaps a handful of heavy-load modules being doing seamlessly in the background via WebAssembly (like making PDFs or TensorFlow.js). On the whole I think the coming revolution with WebAssembly will be porting things like Unity, Unreal, AutoCAD, and other traditionally desktop applications into the web. This will democratize the web even further, letting people in developing countries have access to the same sorts of cool stuff we just take advantage of.
What are the few things Microsoft Azure and the cloud team did recently that you are proud of?
- Azure Static Sites just became generally available!
- I think Azure Durable Functions are a wonderful new paradigm for writing Azure Functions.
- Azure Front Door is going to make setting up complicated infrastructure super easy.
- I'm stoked Azure Pipelines is now free to open source projects.
That's off the top of my head.
are you going to release any advanced JS course in future :D ? Something that goes beyond YDKJS, JS Allonge and all those well known beginner books?
Can you recommend any books (advanced JS or w/e) please ? I just love reading book related to JS cuz they seem to be the one stop answer to most of my questions :D
Hi Brian, what advice do you have for beginner developers trying to understand cloud infrastructure and setup? Do you have any best guide/tutorial?
Hi Brian! Big fan of your work. So for someone completely new to the field, could you help me understand the difference between traditional software development and developer advocate roles? What kind of skills set one apart from the other? It’s been a while since i’ve been seeing this terms and as a future developer (or developer advocate?) i wanted to get this difference cleared up. thanks!
Developer advocates draw on past experiences as engineers and the tools their companies offer to help people solve their own problems. I use my experience at Netflix and my knowledge of Azure to help people understand how Azure Functions can help them iterate faster.
Most good dev advcoates will have a lot of technical experience solving the same sorts of problem that much of the industry is also trying to solve. The dev advocate will do more technical writing, public speaking, and consulting as part of their role than a developer will do typically. So if your ambition to do speaking, writing, and consulting then a dev advocate role will be perfect for you.