AMA with Brian Clifton

by Nov 19, 2020AMA, Community

Welcome to the latest post in our series of BAT Community-run AMAs!

The ongoing AMA series is an opportunity for our users and fans to get to know the Brave team, to chat with them directly, and to illuminate the work and contributions of our team members. (Work that, in many cases, takes place largely behind the scenes.)   

Most recently, we were joined by Brian Clifton, VP of Engineering at Brave, who spent the afternoon fielding both pre-submitted and live questions from the Community on Reddit. Brian cheerfully retold the story of how he came to join Brave in 2016 while the company was still in its infancy; revealed what he views as his most meaningful contributions to the project to date (he was one of the engineers leading the migration from Brave’s old back-end architecture, known as “Muon”, to Brave Core); and discussed improvements, additions, and new features coming to Brave in the not-so-distant future, such as highly-requested vertical tabs. Brian spoke about some of his passions outside of work, which include spending quality time with his family and restoring older cars, and offered some advice on navigating the job force (and workplace), the importance of treating others with kindness and respect, and reaching out for help when you need it. 

Highlights can be found below, with a link to the full AMA at the bottom of this post.

Impressive-Guess7130: Why did you join Brave?

Brian: Around 2015 or so, I found GitHub and started getting interested in participating in open source projects in my free time (at nights and on weekends). The first one I got a chance to make contributions to was Ember.js—mostly documentation updates, which was a great way to start! With that project, I got to meet Yehuda Katz and a lot of super talented developers in the community who were very supportive as I ramped up and was learning more and growing.

I started contributing to Brave back in April 2016, after finding it on Hacker News. (The first commit I made was adding favicons to the bookmarks toolbar!). At the time, Brave was using Electron which was totally new to me—it was really exciting getting the code up and running and adding features. The small contributions I was making over the period of a few months really started to add up—even getting feedback (positive and negative) from other users on GitHub. As I got to know the employees at Brave, I started to get good feedback about the work I did and really started to enjoy working with them. I love C++ and the Chromium code-base is super interesting. Besides enjoying the work (everybody uses a browser!), co-founder Brian Bondy promised to work with me on growth—something I hadn't really focused on in a while in my career (at the time, I was still an individual contributor with management aspirations). He's definitely followed through on that promise and the past 4 years have been amazing! 😀

Bat-chriscat: Which codebases do you work most closely on?

Brian: I mostly work on the Desktop product—usually trying to find a clean way to make feature changes without making the "rebasing" process (pulling in new versions of Chromium) too horrible for teammates. I try to help with as many reviews as possible too—my favorite is helping contributors. But I think right now, we have over 120 open pull requests (!!!) and over 2,500 open issues (?!?!) so it can be difficult to track everything. Things definitely slip through the cracks and I apologize to folks who have had to wait weeks or months for a review. 🙁

bat_account: Do you foresee app stores further clamping down on BAT use within Brave? I saw something about Google requiring all apps to switch over to Google Pay in a year or so. Do you see them trying to say BAT is not allowed and circumvents their rules?

If there are potentially billions to be made to be made (or lost), I see additional draconian measures on the horizon being implemented by Apple and Google on their app store to make sure either they are the only ones who can do this or nobody can. They want their cut.

Brian: Great question. We've definitely faced some challenges here in the iOS App Store. We've tried our best to comply with the guidelines while still offering an experience with BAT, which means we have a little less functionality on iOS for the moment. Android is a little behind, but more because there are some unrelated (to App Store) challenges, like resourcing and also reworking the rewards UI using native code (instead of HTML/CSS/JavaScript). We're actively working together to create a better experience on all platforms for rewards.

We're currently focused on working through some changes for iOS to help get us more in compliance with the App Store guidelines; more to come on that soon.

Sepei: What contribution to Brave are you most proud of?

Brian: Most recently, I'd have to say the 24 hour clock on the New Tab Page. 😂 There were a lot of people on GitHub griefing me about this and writing me nasty emails about "what a loser I am for not doing it", etc. Things are always interesting on GitHub. 😀

But seriously—I'd have to say the move from Muon (the fork of Electron we had) to Brave Core (the pure fork of Chromium). This whole move was a massive effort by a lot of people—near the end, it was just myself and just a handful of others maintaining the old product until the very end. There are definitely things (in retrospect) which I think could have gone better... but overall, I think things went pretty well considering we replaced our entire Desktop product with a completely new product.

bat_account: Is Tor support for mobile on the roadmap? What are the unique challenges for adding it to mobile vs desktop?

Brian: This is DEFINITELY something we'd like to do. We're just starting to get back into some Tor-related tasks on Desktop (showing onion routing in the URL bar/omnibox, downloading or re-downloading binaries when you first open a Tor tab instead of on first Brave launch, which sets off virus scanners, etc).

Android would be the first platform I think—iOS is always more of a challenge. I can't promise any precise timelines, but I'd imagine we will make progress on this within the next year.

Impressive-Guess7130: Did you have any Influential moments or people in your life that furthered your understanding of tech? If so would you be willing to share?

Brian: Probably the person who most changed my life is my long-time friend Bill that I met on AOL's HyperCard section back in 1993. He downloaded a game I made which was massive (at the time; 500kb), back when we both had Performa 476 Macs with the Global Village 2400 baud modem and we're paying AOL service fees by the minute. I had some good graphics and flashy effects, but there wasn't much substance to my actual game and Bill wrote me an email like "Hey buddy—I just spent $5 downloading that piece of crap". We exchanged a few emails and became good friends. One of the nicest people I've ever met. It was great getting to talk about programming over instant message and even on the phone (since long distance is cheaper than what AOL charged per minute!)

I was in a small town in Southwest Florida and none of my friends were really interested in programming. They were mostly interested in using a computer for gaming (Warcraft, Diablo, Ultima Online, etc) but nothing much past that. Bill was in Illinois, we worked remote over AOL / phone on a few projects together while I was in high school and we really taught each other a lot about programming. I remember explaining to him how to use global variables in HyperCard and then he was the one that got me into C++. My first C++ compiler was a student version of Metroworks "CodeWarrior" that he got me after he started university.

Later on in life, I moved to Phoenix, Arizona for college and Bill just happened to live in the same area. He had finished college in Iowa and was in Arizona now working at Intel. We got to meet "for real" at a Fry's Electronics (really cool place) and we continued to work on a lot more fun projects (OpenGL games, etc) while I was in university. A few years after I got my bachelor’s, his team (at Intel) had an opening and I applied, went through the interview process, and eventually got hired. 😀 Almost 30 years after we originally met, we still meet up occasionally for lunch.

DappsBoi3: Why isn't brave adding tipping to more platforms so more creators join? Are there technical blockers, or is it something else?

Brian: There are definitely folks working on this right now, actually. 😀 One of the challenges is that the sites can change their code at any time—so we need a solution where we can push fixes quickly. Mark Pilgrim here at Brave worked on a feature called Greaselion (naming a tribute to Greasemonkey). This lets the browser load content scripts (and background scripts I believe) remotely that it can run if criteria is met (ex: on GitHub, Twitter, YouTube, etc). These scripts will inject the tipping interface and are very easy to update. The old approach was actually hard-coding the API into our code-base, which presents a lot of challenges and isn't quick to update unfortunately. So we're focused on moving over to Greaselion before adding more platforms. Definitely stay tuned!

Impressive-Guess7130: What are your thoughts about Chrome's rendering engine dominating the internet? Is that a worry at all? If not hear this out: I'm worried about more people using chrome's rendering engine because the power that gives Google (a horrifically unethical company) to set standards and influence the web. This is one of the reasons I continue to use Firefox alongside Brave. Both are great but ideally we would have many rendering engines and much user choice rather than Google's, Mozilla's and Apple's.

Brian: Given the market share, I think it's clear that end-users enjoy Chromium—or at least they're the most tolerant of it. I don't personally (my opinion 😛) see much value in different rendering engines given the current situation. I remember having to support IE6 forever and the developer experience (making a website or app that works for everybody) seems to be so much nicer now that most folks are rendering with Webkit or Chromium. I don't think it would be much fun to (on purpose) diverge and bring back painful cross-browser rendering issues. I shared this in another thread, but I'd like to give big props to the Edge team for moving to Chromium—that was a super smart move, IMO. Fighting rendering issues isn't worth the cost when you could be working on product features which completely set you apart from other browsers.

RE: Google having control over the standards… Now that bigger players like Microsoft have stakes in Chromium, it's really interesting to see how ownership changes. Changes in Chromium happen in a CL (change log) and anyone that has modified those files before that has commit access can approve. I think you're gradually going to see Microsoft and others start to take ownership of these files and become more involved in the reviews. Already at events like BlinkOn, there are large numbers of non-Google folks involved in Chromium giving talks about areas they've worked on (lots of the talks captured on YouTube! Worth a watch). Some of those companies include Samsung, Naver, Igalia, Microsoft, and of course Brave. 😀

Sepei: What do you do in your free time?

Brian: Usually, I just relax in my free time with the family—work on things around the house, enjoy a movie together, grab dinner out somewhere (a rarity these days!). I'm teaching my son to ride a bicycle right now, which is interesting! Having a kid is great because I'm getting to play LEGOs with him... He's got a massive tabletop that I glued the flat LEGO sheets to, so that he can make a city or whatever.

Hobby-wise, I love trying to work on cars. I've done quite a few repairs myself and recently restored an old 1991 Mercedes-Benz 560 SEC. Besides fixing cars, I know a lot about that chassis (W126) and have a habit of looking for parts cars from that era. Just recently, I got a 1986 MB 300SDL for $100 USD and I've been dismantling it to get all the trim pieces, motors, steering box, wheels, and other goodies out. I'm able to help get these parts over to other enthusiasts and (hopefully) help keep these old cars on the road. 😀

Impressive-Guess7130: What are some things you could pass on to us to help those who want to get into the tech workforce?

Brian: Networking makes all of the difference. Try to get into situations where you can meet (in person or virtually) more folks in your industry and engage with them, learn about their history and experiences, and try to make a positive impression with them.

When I finished college in 2003, I was having a REALLY hard time finding a job. I ran out of money and was packing up my apartment and getting ready to move in with my Grandma. I used the last of my money buying a King Cobra 40 oz malt liquor at an AM/PM gas station and when I was in the parking lot, I bumped into a friend from university. He put me in contact with his friend who just happened to be looking for entry level programmers. That was my first paid job and while it didn't pay much (and ultimately I did end up moving in with my Grandma; RIP grams!), I learned a lot, built my network with co-workers there, and the experience helped land future jobs. 😀

Holowolfe: Is there a time frame for Sync 2.0 for IPhones? Are there plans to sync BAT over devices without using Uphold? Are there plans to add more "cozy" features or creature comforts to Brave similar to Firefox? (Ie. Reader view, in browser screenshots, Bookmark sidebar, More window customization, Tab groups, etc. Within the limits of chromium.)

Are there plans to add "Brave approved extensions" or "recommended extensions" Similar to Edge and Firefox? Are there plans for Brave to create their own extensions?

Thank you so much for your time. I'm excited for the future of Brave as well as the BAT system.

Brian: We're working super hard on the iOS integration right now. We have an Alpha build that we're testing internally which does work and we're looking at polishing. Brandon Thomas on the iOS team along with Brian Johnson (and a lot of others! too many to name) have done an amazing job. One of the harder things about this integration is that the iOS product is forked from Firefox—it doesn't share any code with Chromium. So we're having to wire up the full experience of creating a Chromium profile, setting up enough that it can do the sync, and then modifying the code so that it uses the Chromium version of the bookmarks object. (Update since AMA: iOS (version 1.21) now features Sync for bookmarks, available since Nov. 11).

We have talked about some mechanism for syncing either ad grants or wallet or both. I don't work directly with that code though—so I can't speak to all the complexities, other than "We're looking at it". 😀 Definitely more integrations planned and I do know that there are improvements to the tipping interface coming soon.

Extension-wise, it's hard to vet all the extensions out there. We did look at trying to analyze extensions and creating an allow list / block list (with everything else falling under "not reviewed"). But it's really a difficult task. I think we'll change the UX around extensions to not be so scary (right now, I think it says "INSTALL AT YOUR OWN RISK!"). Recommendations about what you'd like to see extremely welcome.

Impressive-Guess7130: What are your thoughts about privacy? How far will you go to protect in your online life and physical life?

Brian: Privacy unfortunately almost feels like a luxury in today's world. The phone in your pocket is recording your position, almost everywhere on the web requires you to use an email to sign up, the supermarkets all have "loyalty IDs" where they give a discount at the expense of tracking all your purchases. As hopeless as it can feel sometimes, it can be a really powerful experience when you do try to take control over the small pieces you can. I love the stuff we're doing with Brave—blocking trackers or giving them bogus data so that they can't accurately fingerprint you. In the big scheme of things, just having control in your browser might be small—but it's still great to control what you can.

As stubborn as it is, I've spent way too long submitting forms to Spokeo, TruePeopleSearch, and similar sites trying to get them to remove my info. 😂 I try to pay cash for things when possible (you'd be surprised what credit card processors collect about your purchases). In everyday situations I always 1) think about what I'm sharing and 2) who I'm sharing it with. Sharing your upcoming vacation plans with friends and family might be fine—but broadcasting that out on social media (along with pictures of your valuables and how your house looks inside) probably isn't a great idea. You can always share pictures after you get back. 😀

There's some information that people just have no business knowing; sharing will at best give you no real advantage (maybe just a smile) and at worst would be a disadvantage for you. When you're going through a job interview process, there is absolutely no advantage to telling the hiring manager your current salary (if they ask or topic is raised). Or volunteering that you're thinking about starting a family—the hiring manager might think "oh great—that person will be wanting to take paid parental leave during our most important project!". Brave isn't like that of course, and in the USA it's illegal to ask those kinds of questions—but some people out there (not just the programming industry) will try to feel that out and discriminate. If you're buying a car, there's no real reason to give the salesperson details about yourself past your requirements—they'll often just use those personal details to try and appeal to you emotionally and cloud your judgement.

Hopefully this is an interesting perspective—just some of my thoughts. 😀

reddituserdm: Can we expect vertical tabs, multi-account containers and better and more customization? No one seems to be talking about vertical tabs when they are a crucial feature that even Microsoft implemented in their browser. I like what you are doing, the team is great. I hope you continue to do what you do. You have a real chance at changing the world's broken advertising model and browser market.

Brian: Rafael (Desktop Product) and Karen (Senior Designer) are working through a "sidebar" interface right now which has a bunch of use-cases (playlist, vertical tabs, and more). We're getting close with a design and will definitely be making progress on this in 2021! Huge thanks to everybody for their patience 😀 (there are so many things to work on and just not enough time!)

Impressive-Guess7130: If you were to give tips to the younger you about life, tech or anything what would they be?

Brian: This is a good one— there are a few things I'd have to share:

Always treat people with respect. You never know what situation a person is going through—or what kind of challenges they face. I can't think of a situation where treating someone badly makes a situation better. You might not agree with a person or their point of view but you can learn a lot by trying to take some time to understand where they're coming from.

Don't let people disrespect you or make you uncomfortable. If someone at your job is toxic, doesn't treat you with respect, and/or consistently does things to make you uncomfortable, you'll want to solve that problem sooner than later— before it gets out of control. Whether that means asking a friend or co-worker for help, talking to your manager or HR, or looking for another job if you're able to swing things. I worked for a really interesting (crazy) person very early in my career and it was a really unhealthy situation. Lots of drinking "in order to do business" and all that. Quitting was super hard and I thought the guy might even come after me—but quitting was one of the best decisions of my career (even though I didn't have a job lined up).

Try to stay positive. It's really easy to get negative about a situation or blame someone else ("The programmer before me was an idiot"). It's good to vent about things (being upset about the situation) - but recognize when it gets past just blowing off steam. I think it's better to focus on what the situation is and what you're going to do about it.

This might be more specific to me—but I bet someone reading this has been in a similar boat. Mental health is a real thing, just like physical health. It's OK to feel defeated sometimes and it's a good chance to regroup and come back stronger. I legitimately have OCD (obsessive compulsive disorder) and after managing it for over 10 years, I have a fairly normal life—but every once in a while things can be a struggle. This is something I wished I reached out for help about earlier in life- I tried to mask the problem using alcohol or just cancelling on my friends because I'd be experiencing anxiety that I didn't know how to control. It wasn't until I was on a business trip in Hillsboro, Oregon (for Intel) that I had a breakdown in a hotel room and finally got professional help. I needed medicine but just going through therapy was great. Everything in my life got better (by orders of magnitude) after I did that. I actually ended up meeting my wife about a year after that. 😀

Read the full AMA here.

See our recent AMA with Luke Mulks, Director of Business Development at Brave, here

Follow the BAT Community’s Updates here: https://www.reddit.com/r/BATProject/

Related Articles

Continue reading for news on ad blocking, features, performance, privacy and Basic Attention Token related announcements.

Ready to Brave the new internet?

Brave is built by a team of privacy focused, performance oriented pioneers of the web. Help us fix browsing together.
Download Brave