DEV Community

Cover image for I’m a digital nomad and author of High Performance Android Apps, ask me anything!

I’m a digital nomad and author of High Performance Android Apps, ask me anything!

Doug Sillars on September 12, 2018

I'm a freelance Developer advocate and performance engineer. I'm also a digital nomad, traveling with my family through Europe. Ask me anything!

Collapse
 
peter profile image
Peter Kim Frank

How do you typically describe the role of being a freelance developer advocate? How long do you normally work with companies, and what can they expect from leveraging your services?

Thanks for doing this AMA!

Collapse
 
dougsillars profile image
Doug Sillars

Hi Peter,

I am working with a few companies to help them advance their developer outreach. I'm writing documentation, helping them frame their outreach plans (rather than focus on everyone and everything - focus on the top groups that will advance their program the most).

I can also represent companies at conferences - as a speaker - or in a booth - helping to share the developer experience.

Basically, anything that you might want a developer advocate to do (or help your current team with because they are overloaded with things to do).

I have a feeling that I'll work with some companies for a short period, others for longer.

I also run performance audits on mobile apps and websites - to look for performance issues that can be resolved to speed up apps, and improve customer experiences and retention.

Collapse
 
yaser profile image
Yaser Al-Najjar

What do you think about PWA... are they gonna rule over the Android native apps anytime soon?

Can a business rely on such apps since they are easier to download via the website without going through the store?

Is there any real advantage to write a native app vs a PWA?

Collapse
 
dougsillars profile image
Doug Sillars

I think PWAs are great. I think getting content stored for offline use in the browser is wonderful (especially when you land in a country where your SIM does not work)

But in some respects - this is the old "should I build a mobile site or native app" question - just with an improved browser experience. I don't know if there is yet a definitive answer to this - it all depends on what you are trying to do. PWAs can solve a lot of your mobile needs (and cross platform to boot!) but many IDEs let you build iOS and Android from a single codebase as well.

Collapse
 
rhymes profile image
rhymes

Wow! A digital nomad with a big family. Amazing!

Hi Doug, my questions are entirely non technical :D

How do you and your family fare with moving around? How often do you pack up? Europe is pretty big so there's plenty of places and countries to explore. Any favorites so far? Favorites in general and more apt to a "digital nomad family" :-)

I read you're in France right now, nice!

Sorry, I'm very fascinated by the digital nomad lifestyle :-)

Collapse
 
dougsillars profile image
Doug Sillars

On this trip we brought the dog too!! Max is an 11 year old Golden Retriever. On the first year, we went a bit frenetic - 67 different AirBnbs in 1 year.. often less than a week per city. But that was too much, so we have slowed down- and are doing around a week minimum per stop. We just did 4 months in Ireland (1 month in West Cork, and 3 in Dublin - with a few shorter road trips interspersed.). We just took the driving route to France - long days in the car... but now will be doing week or more stops.

We try to minimize our "stuff" but I also think you fill your space - we did only suitcases and trains/planes for years, but we just bought a van... and now that is chock full :)

Collapse
 
dougsillars profile image
Doug Sillars

There's a joke about how I'm not actually in Nice, France here somewhere :)

I am amazed at how much of my high school french (many many years ago), is coming back.

Thread Thread
 
rhymes profile image
rhymes

Ah ah please tell me the joke in French :D

Thread Thread
 
dougsillars profile image
Doug Sillars

my kids love the joke about one-two-three cat and un-deux-trois cat swimming the english channel.

Of course one-two-three made it.. but unfortunately un-deux-trois quatre cinq.

Thread Thread
 
rhymes profile image
rhymes

Ahahhaahah 😂😂😂

Collapse
 
rhymes profile image
rhymes

Truly amazing! I think the stuff we all accumulate staying years in the same place is more than the space in your van :-)

Collapse
 
dougsillars profile image
Doug Sillars

Hi everyone. I'm excited to talk mobile performance with you this evening (in France).

Collapse
 
ben profile image
Ben Halpern

What part of France?

Collapse
 
dougsillars profile image
Doug Sillars

Outside Beziers.. Near the coast :)

We have now driven north-south.

Collapse
 
traderd65_55 profile image
TraderD65

To what extent knowledge of optimizing content assets (in order to achieve high-performance) should be the concern of designated developers on a team vs being a general topic that every developer on the team should be knowledgeable about?

Collapse
 
dougsillars profile image
Doug Sillars

Great Question,

I am a real big fan of everyone focusing on performance.

One on the top ways to improve customer retention and sales is to improve performance - so having budgets and goals for your site/apps speed is really important - and the whole team should be focused on that - and weigh the pros and cons of adding new features when they slow everything down.

Perhaps one leads on images, or another has expertise on Javascript perf... but I think it should be something the whole team is united on.

Collapse
 
andy profile image
Andy Zhao (he/him)

How'd you get into Android development, and what'd you do before that?

Collapse
 
dougsillars profile image
Doug Sillars

I worked at AT&T for many years, so I have been working in mobile since EDGE was fast, and we all coded in wml to make simple WAP sites for Nokia candy bar phones :) Once the iPhone came out - the walled gardens of the carriers came down. I was drawn into Android, and have been doing that and mobile web ever since.

Before I got into mobile, I received a PhD in Inorganic Chemistry - where I studied really fast reactions, and how to make them even faster.

Collapse
 
andy profile image
Andy Zhao (he/him)

Whoa, that's pretty cool! Would love to hear any stories or cool chemical reactions you saw.

Thread Thread
 
dougsillars profile image
Doug Sillars

My research was pretty tame from that perspective.. Everything was air/water sensitive - but it didn't blow up, it just fell apart and I had to star over again :)

The reactions were so fast, I had to col them down to -80 C to watch them .. so lots of dry ice - it looked like Halloween sometimes in my lab.

I got to work in a machine shop building instrumentation (electronics and code as well), which was a lot of fun.

Collapse
 
andy profile image
Andy Zhao (he/him)

Hey there! What are your thoughts on Kotlin vs Java and performance? Are there some huge differences to consider when using one language over the other, or is it mostly negligible until you scale?

Collapse
 
dougsillars profile image
Doug Sillars

Hi Andy,

Good question - but I'm not sure I have a definitive answer for you. It really depends on how you implement the code.

Collapse
 
andy profile image
Andy Zhao (he/him)

Fair enough, thanks!

Collapse
 
shirlymanor profile image
Shirly manor

Hey, I have a question regarding ads, Advertisers are slowing down websites with excess JavaScript. What are some ways to improve page speed w/o removing ads?

Collapse
 
dougsillars profile image
Doug Sillars

This is super important. I don't think ad networks are doing as much towards JS performance (or even image resizing!) that they could be doing. Audit the ads being added to your site. Defer the ad JS as much as you can to later n the load sequence.

If you find really horrible behaviour - talk to the ad provider. If possible switch to one that optimizes content. I'd love to think that the market can push ad providers to optimize their content - but we will see.

Collapse
 
etportis profile image
Eric Portis • Edited

What are the current best practices for responsive video? I know <video><source media> was deprecated a while ago...

Collapse
 
dougsillars profile image
Doug Sillars

Here's where client hints would be really helpful, but they are currently turned off in Chrome. I think the best way is to use JS to define the screen size and format and make the correct request (and while you are at it - look at the netInfo too - perhaps you can further optimize the content based on the network speed.

Collapse
 
maestromac profile image
Mac Siri

Hey Doug, thanks for doing this!

Does being a nomad help with coding and writing? Do you miss the office life?

Collapse
 
dougsillars profile image
Doug Sillars

I was working from home for many years before we hit the road. I got really used to working from home, and I think I am much more productive that way. There are times where I have to pop on the headphones (but I had to do that in the office as well...) for some quiet. But in general, I think of it as working from home - just in a different home.

When I was working from home - I got to choose where my house was -without worring about my commute - and I loved that. Now I really get to choose.

Collapse
 
maestromac profile image
Mac Siri

Ah that's a good way to transition into nomadic life/work style.

Collapse
 
raddikx profile image
Morillas • Edited

I'm a Software Developer and I've thought many, many times in becoming a digital nomad and for the same reason like you. My wife and I loved to travel and we would like to do it as often as possible and as young as possible. The maximum we have achieved is to live in three different countries so far. But with "traditional" jobs.

But honestly, I don't know where to start with man :-D Any suggestions and recommendations, from your experience, for all of us who would like to have a life like that but we have no idea where to start :-)

Collapse
 
dougsillars profile image
Doug Sillars

Good q. I've been remote working for years, and been really successful. It isn't for everyone, and I tend to put in more hours than perhaps in the office (but I have no commute!)

I think getting building a reputation for good work, and then working to line up remote friendly work - be it a full time gig, or putting together a mix of work. I also try to use traveling to my advantage- offer to speak at meetups as you travel... so you can promote the company/your work/you as an integral part of your travel.

Then comes the scary part. Setting a deadline, and going. Putting everything in storage, renting the house and booking the flights :)

Collapse
 
dzeitman profile image
Dan Zeitman

What would be the first item to work on when Optimizing you website of mobile app?

Collapse
 
dougsillars profile image
Doug Sillars

Step one is to understand what is going on. Use WebPageTest, or Lighthouse (or any other tool) to figure out where the pain points might be. Some sites might suffer from JS bloat, others on images.

Use monitoring tools like SpeedCurve or RUM tools to understand where your customer's pain points might be.

Then, once you understand the problems...you can roll up your sleeves and start fixing the code.

Also, test on low powered devices, and slow connections. Get an Android Go device. Slow down the network speed to 1.6 MBPS. Then test. As devs, we tend to have fast devices and top notch internet connections, but not everyone does.

Collapse
 
jess profile image
Jess Lee

What made you decide to be a digital nomad? And if you have kids, how does that work for them?!

Collapse
 
dougsillars profile image
Doug Sillars

Hi Jess,

My spouse helped push me on this route. We both love to travel, and we didn't want to wait until we retired to go see the world.

We have 4 kids, and we homeschool them on the road. (My son's math book has a weird format to the pdfs for each page... so we sued Regex and curl to download the pages tonight - it's like a double education!)

Collapse
 
jess profile image
Jess Lee

ha, love it!!

Collapse
 
etportis profile image
Eric Portis

I'm really excited about the NetInfo API but haven't found too many uses for it, in production work. What's the coolest use case you've seen for the NetInfo API?

Collapse
 
dougsillars profile image
Doug Sillars

I haven't seen alot of use of it in production either (I should probably look in the HTTPArchive for that...)

However, I see a great possibility for images or video - if the browser is telling you the average download speed - you can customize the content for the network your customers are on.

In the news the last week is that mobile Chrome users with data saver mode on - if the effective connection is 2G - the browser will no longer download JS. Tim Kadlec has a good write up on that: timkadlec.com/remembers/2018-09-06...

Collapse
 
lillyhsueh profile image
lillyhsueh

What do you suggest for serving videos in mobile apps? Any tips and tricks to keep them as light as possible?

Thanks so much!

Collapse
 
dougsillars profile image
Doug Sillars

Keep them as short as possible. Do what you can to optimize them to the screen size of the device. We know that resizing images can be very costly on the CPU - video is the same.

Adaptive bitrate streaming is great for serving videos as it does accommodate for the screen size, and the available network - serving the 'best' quality stream it can to the player. But there are many tricks to streaming - making sure that the bitrates you are serving are the proper ones for the devices/networks your customers are using. In general - start with a lower quality bitrate to lower the startup time.

Collapse
 
djlad97 profile image
Dan Scott

How did you get to the point at where you could make a living being a digital nomad?

Collapse
 
liana profile image
Liana Felt (she/her)

What are your thoughts on flutter?

Collapse
 
dougsillars profile image
Doug Sillars

I haven't used it yet, but I really like the idea of integrating UI into the development process. Working on performance aspects of apps, I often interact with both UI/UX and the dev team.

I talk to lots of UI/UX folks who are coding more and more.. and developers who work closely on UI. Seeing that as a major part of the Flutter ecosystem shows the importance of that convergence.

Collapse
 
ben profile image
Ben Halpern

Do you know much about Fuchsia OS? Do you have any thoughts on that?

Collapse
 
dougsillars profile image
Doug Sillars

I've seen a couple of talks on Fuchsia... But I haven't used it - nor do I have any thoughts on it yet...

Collapse
 
stephen_coyle profile image
Stephen Coyle

Do you think creating a reusable UI module is a good idea? The module would return views to display.