[MUSIC PLAYING]
DOUG STEVENSON: Hey, everybody.
Welcome to Meet Firebase, where you
get to meet the Googlers that makes Firebase happen.
My name is Doug Stevenson.
And on the show with me today is Uday Bidkar.
Uday, thanks for joining me on the show.
UDAY BIDKAR: Thanks for having me.
DOUG STEVENSON: What have you been working on lately?
UDAY BIDKAR: I've been looking on the Android
SDK of Firebase performance monitoring tool.
DOUG STEVENSON: Firebase Performance Monitoring.
So that's new, right?
And it's also in beta, isn't it?
UDAY BIDKAR: Yes.
We just recently launched it in Google I/O 2017.
And it's in beta right now.
DOUG STEVENSON: And so how does it help
developers build their apps?
UDAY BIDKAR: It helps you monitor
the performance of the app, as its name suggests.
Like if you just integrate the SDK into your app,
you get to monitor how your app is performing
with respect to the launch time, the time it
takes to make a particular network request,
and what is the size of the network request,
like what is the payload size or the request size, response
size, and everything.
DOUG STEVENSON: It sounds like this is information
that developers can use to improve the perceived
performance of their apps.
That right?
UDAY BIDKAR: Yes.
So this SDK lets you collect the data
from different regions of the world, how
your app is performance in different regions--
also on different types of devices.
So you know the Android world is fragmented.
So there are different configurations of the devices
out there in the market.
So once your app is launched in the market,
you don't have any idea how it's performing
on different sections.
So this SDK gives you a picture, how
it's doing all over the world on different kind of device.
DOUG STEVENSON: It sounds like you'll
be able to track down which devices are maybe performing
poorly and then focus on those.
UDAY BIDKAR: Sure.
DOUG STEVENSON: Maybe even find out-- it
sounds like maybe some parts of the world,
your app might not be performing very well.
And so you can focus on that experience as well.
We'll have a link to that in the description
below so you can check that out.
So you are from India, right?
UDAY BIDKAR: Yeah.
DOUG STEVENSON: And what part of India?
UDAY BIDKAR: I'm right from the center of India, Nagpur.
DOUG STEVENSON: Nagpur.
I actually just got back from India.
I was in Delhi and Pune for some Firebase events.
I discovered in India, it's very hot.
UDAY BIDKAR: Yep.
In fact, Nagpur is one of the hottest cities in India.
Recently, I think the max temperature was
about 118 degrees Fahrenheit.
DOUG STEVENSON: 118.
That's scorching.
I also discovered that developers are really
into Android there.
It seems to be a very popular development platform.
UDAY BIDKAR: Right.
On Android, you can get started with Windows, Ubuntu, Linux,
or Mac, whatever you have with you.
And then you can just get started with.
DOUG STEVENSON: How did you even get into computer science?
UDAY BIDKAR: There's a bit of a story.
I actually started in mechanical engineering in Pune University.
But I flunked the first year.
So to continue my education, with the limited educational
fund my dad had set up for me, I had
to go back to Nagpur, which is less expensive than Pune.
So I went back to Nagpur, but Nagpur University
allowed only admissions to information technology
for such students.
So I had to take admission into information technology.
So I was kind of forced to information technology.
But then I got introduced to programming
and just started loving it.
DOUG STEVENSON: So you were forced into it,
but you ended up liking it.
Well, I'm glad that worked out for you.
How did you get involved with the Firebase team after that?
UDAY BIDKAR: It started about a year ago
when they added a bunch of products into Firebase family.
And I started experimenting with different SDKs,
and then fixed a couple of bugs onto their Android UI SDK.
And then thought, it'll be interesting to work
on these products day in and day out.
So I reached out to a couple of teams in Firebase,
came across Firebase Performance Monitoring tool,
which was just getting started.
And then I thought, this is going
to be interesting to work on.
DOUG STEVENSON: Well, I'm glad you're on the team.
I'm sure your efforts are greatly appreciated.
Also you're a father.
You have a four-year-old son.
And I imagine he must be a handful.
UDAY BIDKAR: He is a handful.
And every day is getting tougher.
DOUG STEVENSON: So it sounds like you
have a lot going on in your life with working on Firebase
and having a four-year-old son.
But you also play musical instruments.
And I'm curious to know what you play.
UDAY BIDKAR: I started with piano, violin.
I added in flute and also harmonica.
DOUG STEVENSON: I have a harmonica here with me
right now.
UDAY BIDKAR: Really?
DOUG STEVENSON: Could you show us how do you play harmonica?
Because I used to have one when I was a kid,
and I never learned how to play.
So I'd be curious to know how it works.
UDAY BIDKAR: Let's try it out.
[PLAYING HARMONICA]
DOUG STEVENSON: Very nice.
Well, thanks for that demonstration.
I always felt that harmonica's kind of a unique instrument.
It seems to be much simpler.
And you can put in your pocket at the end of the day
instead of--
UDAY BIDKAR: I was surprised to know
that it makes sound when you blow in and blow out as well.
When I was a kid, I only thought that you had to just blow in.
But then a friend of mine taught me
that you can blow out also to make different notes.
So that's how I--
DOUG STEVENSON: So that's how you learned to play
is through a friend.
UDAY BIDKAR: Yeah.
DOUG STEVENSON: I don't know how to find a harmonica instructor.
So I guess a friend would be--
UDAY BIDKAR: You have one now.
DOUG STEVENSON: Well, I'll get lessons from you
after the show.
UDAY BIDKAR: Sure.
DOUG STEVENSON: Thank you.
Now that you've been on the Firebase team for a while,
what do you feel makes it special or different for you?
UDAY BIDKAR: I help other developers to make good apps.
That's what excites me every single day, because my code
decides on millions of devices.
And then I need to be extra careful not to break
those devices every single day.
So that's pretty much exciting.
DOUG STEVENSON: Millions of devices,
and you think about all those devices on the planet,
it's running your code in some way.
It is.
It's a lot of pressure in one way.
But I imagine you appreciate the challenge.
UDAY BIDKAR: Exactly, yeah, so that's exciting.
DOUG STEVENSON: Well, thanks for sharing that.
I have one more thing for you, Uday.
It's a game.
Sometimes we do a game with the people who I'm interviewing.
And since you work in Firebase Performance Monitoring,
I figured I'd ask you some questions about performance
and computer science.
I have a few questions.
We'll see how many you get right.
And let's get started right now.
So first question, which is more efficient,
inserting an element at the beginning of an array list,
or at the beginning of a linked list?
UDAY BIDKAR: I would say at the beginning of the linked list.
DOUG STEVENSON: At the beginning of the linked list.
UDAY BIDKAR: Yeah, you just put that node right
in the front of the linked list.
DOUG STEVENSON: And with an array list,
you'd have to copy all the elements to the back.
Good job.
Second question, what is the Big O complexity
for finding an element in a binary tree?
UDAY BIDKAR: In a binary tree?
DOUG STEVENSON: Yeah.
UDAY BIDKAR: It's log n.
DOUG STEVENSON: Log n.
UDAY BIDKAR: N being the number of elements in the tree.
DOUG STEVENSON: All right.
Third question.
Which sorting algorithm has n squared algorithmic complexity
in the average case?
And your choices are quick sort, bubble sort, and merge sort.
UDAY BIDKAR: Bubble sort.
DOUG STEVENSON: Bubble sort.
It seems like n squared performance is really not
that great, at least as far as sorting algorithms are
concerned.
UDAY BIDKAR: [INAUDIBLE] you know.
DOUG STEVENSON: It's easy to implement, though.
But the follow up question to that
is what's the best case complexity for a bubble sort?
UDAY BIDKAR: Best case would be order of n.
DOUG STEVENSON: Order of n.
And what's the situation there?
Why would that be order n?
UDAY BIDKAR: When the array's already sorted.
DOUG STEVENSON: When the array's already sorted,
you don't have to do so many comparisons.
All right.
Good job.
The last question is which of the following
does not improve the runtime performance of a hash table?
And your choices are pre-allocating its capacity
to the number of items it will contain,
or using a hash algorithm with fewer collisions,
or sorting the items ahead of time.
UDAY BIDKAR: You said does not, right?
DOUG STEVENSON: Does not improve, that's right.
UDAY BIDKAR: The third one.
DOUG STEVENSON: Mm-hmm, third one.
So yes, sorting the items ahead of time
doesn't actually give you any benefits.
Hashing is pretty random, or at least you hope it's random.
So sorting doesn't actually help anything.
Good job, Uday.
You got five out of five.
I don't think anyone's ever bested one of my quizzes there.
So good job with that.
UDAY BIDKAR: Thank you.
DOUG STEVENSON: Congratulations.
And thank you for watching Meet Firebase.
Now be sure to find out more about Firebase Crash Reporting
by clicking the link in the description below.
Also don't forget to subscribe right here to the Firebase
channel on YouTube to get notified of new video content
that we're publishing all the time.
And I'll see you next time, right here on Meet Firebase.