HNHacker News
TopNewBestAskShowJobs

tschiller

281 karma · joined January 27, 2016

Currently working on https://www.pixiebrix.com

PixieBrix is a browser extension anyone can use to customize websites and SaaS to fit the way they work. (Think userscripts, but lego blocks)

https://toddschiller.com/ https://www.linkedin.com/in/tschiller/

submissionscomments
tschiller··on Show HN: Agent-browser-shield – free extension to protect AI agents on the web
Yep! We're also experimenting with small models to filter out sections that are irrelevant for the agent given its current goal/task
tschiller··on Ask HN: Who is hiring? (August 2022)
PixieBrix | REMOTE | https://www.pixiebrix.com

What if you could customize any web app to provide the perfect user experience?

Open positions (learn more at https://careers.pixiebrix.com/positions):

  - Lead Browser Extension Engineer (must ♥ reverse engineering)
  - Senior Front-end Engineer (Typescript/React)
Email careers@pixiebrix.com. We're Series A startup backed by NEA. Fully remote within ±3 hours of Eastern Time
tschiller··on Ask HN: Who is hiring? (June 2022)
PixieBrix | REMOTE | https://www.pixiebrix.com

What if you could customize any web app to provide the perfect user experience?

Make an impact on a small, growing, team that's open-source, post-revenue, and VC-backed by NEA

Open positions (learn more at https://careers.pixiebrix.com/positions):

  - Head of UX/Product Design
  - Senior Front-end Engineer
  - Lead Browser Extension Engineer (must ♥ reverse engineering)
Stack: Typescript, React/Redux, Python, Django/DRF, PostgreSQL

Email careers@pixiebrix.com. We're fully remote within ±3 hours of ET

tschiller··on Ask HN: Who is hiring? (December 2021)
PixieBrix | REMOTE | https://www.pixiebrix.com

Our mission is to give everyone the power to customize their technology to have the perfect UX. Our first product is a low-code browser extension builder (open-source under AGPLv3)

We recently raised a 3.5M seed from New Enterprise Associates (NEA)

Open positions (learn more at https://careers.pixiebrix.com/positions):

  - Product UI/UX lead
  - Developer Advocate 
  - Lead Web Engineer (must like reverse engineering)
  - Lead Backend Engineer
Stack: Typescript, React, Redux, Python, Django, PostgreSQL, DRF, Heroku, GitHub

Email careers@pixiebrix.com. We're remote within ±3 hours of ET

tschiller··on Ask HN: Who is hiring? (November 2021)
PixieBrix | REMOTE | https://www.pixiebrix.com

Our mission is to give everyone the power to customize their technology to have the perfect UX. Our first product is a low-code browser extension builder (open-source under AGPLv3)

We recently raised a 3.5M seed from New Enterprise Associates (NEA) and some incredible angel investors including Tableau co-founder Chris Stolte and DataRobot CEO Dan Wright

Open positions:

  - Product UI/UX lead (UI/UX designer who can code)
  - Community/education lead
  - Senior Backend Engineer - API/platform lead 
  - Senior Front-end Engineer
Stack: Typescript, React, Redux, Python, Django, PostgreSQL, DRF, Heroku, GitHub

Email careers@pixiebrix.com. We're remote within ±3 hours of ET

tschiller··on Ask HN: Who is hiring? (August 2021)
PixieBrix | REMOTE | https://www.pixiebrix.com

Our mission is to make it possible for everyone to customize the web to fit the way they work. (Think browser extensions and userscripts, but using sharable lego blocks)

Come be a founding engineer at a company backed by a leading VC and execs of major AI, business intelligence, and edutech companies

Open positions:

  - Senior Front-end Engineer
  - Senior Backend Engineer - Platform Lead 
  - Mid-Level Web Designer/Developer
Stack: Typescript, React, Redux, Python, Django, PostgreSQL, DRF, Heroku, GitHub

More information at https://careers.pixiebrix.com. We're remote within ±3 hours of ET

tschiller··on A Brief History of Browser Extensibility
Author of the blog post here! If you comment with corrections/milestones I missed, I'll try to incorporate them

I'll also be attempting to update the augmented browsing/browser extension Wikipedia page in the coming weeks

tschiller··on A Brief History of Browser Extensibility
That's a very cool bit of history! Adding it to my list of references/updates to make to the blog post
tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
Thanks for the link! Adding this to the list of corrections I need to make to the Medium post
tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
According to the spec, Bookmarklets should actually be exempt from a site's CSP. The reason is that the user's preferences should take precedence over a site's preferences

There's an open bug in Firefox about this (because it doesn't follow the spec): https://bugzilla.mozilla.org/show_bug.cgi?id=866522

tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
Yep, the first style manager extension was released in 2005 (Stylish). Style manager extensions are a much more frictionless way to manage and share styles

The WebExtensions API has APIs for injecting styles: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...

tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
Not an expert on this part, but I'd imagine that problem isn't having an API, it's more that running native executables is the problem if you can't sandbox them or limit their resource consumption. Also, relative to running Javascript, their base resource utilization per tab is significantly worse (especially for Java or .NET-based ones that have a base resource utilization from the VM)
tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
Java falls under plug-ins. The Java plug-in was released in 1998. Flash was released in 1996
tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
The safety/stability issue comes from the fact that plug-ins (e.g., NPAPI) are native executables

Browsers started dropping support for plug-ins around 2015. However, plug-ins actually held on longer than you might think. Firefox didn't completely drop support for Flash until the beginning of this year

tschiller··on Apple, Mozilla, Google, Microsoft form group to standardize browser plug-ins
The timeline of browser extensibility is quite fascinating. There's really not a single place that covers all of it, so I decided to research my own timeline/history:

  - Consumer web browsers (1993-)
  - Plug-ins (1995-2015ish)
  - User Style Sheets (1998-2019)
  - Bookmarklets (1998–)
  - Browser Extensions (1999–)
  - Mozilla XUL (1997–2017)
  - Alternative Browser Distributions (2004–)
  - Userscripts (2005–)
  - Converging on the WebExtensions API (2017–)
  - Manifest V3 (2021–)
  - No/Low-Code Browser Extension Builders (2021–)
Here's a link to the blog post with my research: https://medium.com/brick-by-brick/a-brief-history-of-browser...

Also, if you care about browser extensibility, join the w3 group (it's free) and watch the GitHub repo!

tschiller··on Ask HN: Who is hiring? (June 2021)
PixieBrix | REMOTE | https://www.pixiebrix.com

Our mission is to give everyone the ability to customize the websites they use to have the perfect UX. (Think browser extensions / userscripts, but using sharable lego blocks)

Come be a founding engineer at a company backed by a leading VC and execs of major AI, business intelligence, and edutech companies

Open positions:

  - Senior Front-end Engineer - Authoring Tools Lead
  - Senior Web Engineer - Browser Extension Lead
  - Senior Backend Engineer - Platform Lead 
  - Mid-Level Web Designer/Developer
  - Mid-Level Full Stack Engineer
Stack: Typescript, React, Redux, Python, Django, PostgreSQL, DRF, Heroku, GitHub

More information at https://careers.pixiebrix.com. We're remote within ±3 hours of ET

tschiller··on Framing 101
Their site has a lot of great content and research, but it's spread out across PDFs, many of which are single-page handouts for practitioners.

For example, here's their in-depth framing memo on STEM education: https://www.frameworksinstitute.org/wp-content/uploads/2020/...

It's available a couple links in from the corresponding "Toolkits" page: https://www.frameworksinstitute.org/toolkit/wiring-up/

tschiller··on Framing 101
Rhetoric is traced back to Mesopotamia: https://en.wikipedia.org/wiki/Rhetoric#History

The FrameWorks Institute is just a non-profit that's modernizing the study of rhetoric for modern political and social discourse

tschiller··on Tips for reliable web automation and scraping selectors
Great question. Our general approach is to look up the devtools browser extension for the framework, and use that as a reference point for determining how to interface with the framework

The most popular framework we haven't implemented support for yet is Angular. (AngularJS, the old version, is straightforward.) Any of the compiled frameworks, e.g., Google Closure Compiler are difficult because they mangle identifiers. I suspect Svelte might also be tricky, but we haven't tried that yet

At the end of the day though, every framework has to write to the DOM and be accessible. So you can use selectors, or in the worst case OCR/computer vision. (IIRC, FB actively inserts dummy elements to try to prevent structural scraping).

tschiller··on Tips for reliable web automation and scraping selectors
That's definitely the easiest when it's there. In some cases the microdata will instead be embedded in the HTML tags in the body: https://schema.org/docs/gs.html
tschiller··on Tips for reliable web automation and scraping selectors
For React and similar frameworks, the component names get minimized. In practice, JS compilers/bundlers can't mangle property names because 1) alias analysis is hard, and 2) property name string logic is ubiquitous in JS 3) the data often flows from APIs, and mangling would make API maintenance hard. Google's closure compiler and other static compilers are an issue.

As I mentioned in the post, dynamic CSS classnames are also tricky depending on how much gets mangled. We have some techniques in the pipeline for better handling those

tschiller··on Tips for reliable web automation and scraping selectors
Thanks for the links! Will check them out

As far as selectors go, we're currently working through how to support more specific selection when there's multiple HTML element alternatives for a single visual element (e.g., nested tags with no padding/margin).

This isn't too big of an issue for scraping text, but comes into play when pulling attributes, or when using the selectors to modify the page structure. (Our tool lets you place buttons, panels, etc., copying the style/structure from existing elements)

tschiller··on Tips for reliable web automation and scraping selectors
Author here, happy to answer any questions

For our product (PixieBrix) we actually generally grab the data directly from the front-end framework (e.g., React props). It's a bit less stable since it's effectively an internal API, but it means you can grab a lot of data with a single selector and can generally avoid parsing values out of text

tschiller··on Automate any tasks that require multiple entries of data in a browser
As a browser extension, this is very possible to do securely (we support it for our extension pixiebrix.com):

1. APIs accessed authenticated via OAuth2, or via locally-managed credentials. (Browser extensions support this via https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...)

2. For data extraction and form fill, the data never leaves the user's browser

tschiller··on Psychology of Intelligence Analysis (2007)
If you're interested in trying the analysis of competing hypotheses technique (ACH) from book, I maintain an open-source implementation here: https://www.opensynthesis.org/

Our wiki on GitHub also has related reading, including guides from other countries: https://github.com/twschiller/open-synthesis/wiki/Reading-Li...

tschiller··on How to hire for data science and machine learning
Thought this was a great guide one of our InterviewGPS community members put together on what competencies to look for in data scientists and how to assess them during interviews
tschiller··on Making software engineering interviews predictive of job performance
Yep, if your company is having leadership/strategy problems you're not going to go far.

But as a hiring manager in that situation, you can select for team members who excel at dealing with ambiguity, internal locus of control, vision, etc. Additionally, you would look for people who value learning vs. psychological safety, etc.

You're in a known situation, and that situation is constant change and churn

tschiller··on Making software engineering interviews predictive of job performance
If you know what kind of company/situation you're in, you can certainly select for candidates that are more likely to thrive in that environment.

As you mentioned, people gravitate toward their strong suits. So by asking behavioral questions, you can learn how they approached situations in the past and whether their strengths/weaknesses are the right mix for your needs.

tschiller··on Making software engineering interviews predictive of job performance
All teams should be selective. But if you don't have a Google-sized brand and budget, you need to develop a clearer understanding of your teams strengths/weaknesses and needs.

This understanding will enable you to figure out which hiring criteria do you need to maximize vs. which do you need to satisfy and where the bar is.

Also, by interviewing more effectively, you punch above your weight by spending more face-to-face time selling your company/team/role.

tschiller··on Making software engineering interviews predictive of job performance
Great points - there are things we're trying to address over at Interview GPS. We're building a Wikipedia/Stack Overflow-style knowledge base of the best interviewer guides/rubrics: come join the cause at https://www.interviewgps.com/community/

We tag questions in 3 areas:

Personal Values: instead of "culture" we help you assess shared values. For example: do you value fun vs. achievement?

Competencies: does your software developer need attention to detail and critical thinking? Or creativity and collaboration?

Skills: what skills are necessary vs. what can be learned on the job? E.g., should you assess for React skills? Or assess for programming/debugging skills in general?

Also, P.S. you have to be careful/thoughtful when asking about what developers work on outside of work. Worst case, you end up breaking the law by discriminating against protected groups. I'd suggest only looking to that if their work history is relatively lacking and you're trying to develop a positive case for the candidate

Page 1 of 2Next →