Adding notes from Roy Ben Abraham today.

1.2.6. Roy Ben-Abraham <2023-11-22 Wed 10:30>

1.    What is your experience with:

1.    Low-resource microcontrollers or other hardware facing development?

·         Firmware team at Qualcomm (as a student). Microcode, APIs for drivers, writing to registers. Lab experience. 60 GHz wifi hardware.
Insanely complicated power-saving stuff, because of energy constraints.

2.    Rust

·         Favorite language. 2.5 years working with it. 2 years at a company (replex), real-time data replication across different clouds. Systems stuff. Worked on management layer and data path

3.    Automated testing and continuous integration

·         Experience dealing with CI. Gitlab and Github and Jenkins. Written some YAML files. Nothing too deep. Not a big fan of test setup and tooling that I don’t really understand. Want to go deep into understanding it. CI workflow is more breadth than depth.

4.    Secure system design

·         Current job has a lot to do with security, but security has many meanings. (Certora) Smart contracts with formal verification. Actual mathematical proofs for code in production. I worked on dev side of things until recently when I worked with the prover more. Much harder to use the tool than to be the developer of it. Tool might find property true/false or will time-out in many cases. So it’s frustrating to figure out the right rules to write and the long delays in waiting for it to complete. Hard to build an intuition for. Counterexamples the tool yields is also hard to interpret. Kotlin isn’t my favorite though.

2.    What is your experience with community-based open source projects?

3.    Tell me about a scenario where you worked in a multi-stakeholder setting?

4.    Give an example of a significant project that you completed independently?

5.    When is a project “done”?

6.    Do you have experience working with remote collaborators?

7.    How often do you prefer to check-in with stakeholders on your project?

8.    What is your preferred mode of working in a group?

9.    What challenges do you foresee on-boarding to working on Tock in this role?



On Wed, Nov 15, 2023 at 12:16 PM Amit Levy via Pose <pose@lists.tockos.org> wrote:
First Name Last Name E-mail Round 1
Walter Smuts smuts.walter@gmail.com <2023-11-10 Fri 10:30>
Gabriel Leupin leuping@gmail.com <2023-11-10 Fri 13:30>
Gregory Terzian gregory.terzian@gmail.com <2023-11-13 Mon 10:30>
Justin Frevert justinfrevert@gmail.com <2023-11-13 Mon 13:30>
Sean Cross sean@xobs.io <2023-11-15 Wed 09:30>
Roy Ben-Abraham roy.ben.abraham@gmail.com <2023-11-22 Wed 10:30>

1. Round 1 interviews

1.1. Questions

1.1.1. What is your experience with:

  • Low-resource microcontrollers or other hardware facing development?
  • Rust
  • Automated testing and continuous integration
  • Secure system design

1.1.2. What is your experience with community-based open source projects?

1.1.3. Tell me about a scenario where you worked in a multi-stakeholder setting? E.g. one where different contributors had different incentives and resources? Or, what strengths do you bring to this environment and what challenges might you face?

1.1.4. Give an example of a significant project that you completed independently?

  1. How long was the project?
  2. How much did you rely on guidance from others (e.g. a client, manager, advisor, mentor, etc)?
  3. How did you gather feedback from others?
  4. Did you discover the design or requirements changed as you progressed in the project? Why? How did you handle that?

1.1.5. When is a project “done”?

1.1.6. Do you have experience working with remote collaborators?

1.1.7. How often do you prefer to check-in with stakeholders on your project?

1.1.8. What is your preferred mode of working in a group?

1.2. Notes

1.2.1. Walter Smuts <2023-11-10 Fri 10:30>

  1. What is your experience with:
    1. Low-resource microcontrollers or other hardware facing development?
      • Microcontroller project on a motorcycle, calculate speed, calculate fuel efficiency
      • Undergraduate in electrical and computer engineering
      • STM discovery board modulator
    2. Rust
      • Memory manager for Brimstone in Rust
      • Written partial pitch corrector, etc, music stuff, chess server
      • Excited about the type system
      • Maintainer of two crates on crates.io
      • Lots of performance and memory sensitive related operations
    3. Automated testing and continuous integration
      • Always be sure that tests pass
      • Big fan of CI and automated testing
    4. Secure system design
      • Low-level experience on the Brimstone hypervisor. Memory over-subscription.
        • Forces to think about security + hardware
  2. What is your experience with community-based open source projects?
    • Open source crates
    • Contributed to a bunch of projects
      • RustFFT etc
      • Sub-array
      • Array init
    • Rust project
      • Posted two pre-RFCs
        • Generic statics
        • Type inference on generic defaults
    • LMMS
    • Val/Hilo programming language
    • Amazon pushed to Linux from his team (capmem)
  3. Tell me about a scenario where you worked in a multi-stakeholder setting? E.g. one where different contributors had different incentives and resources? Or, what strengths do you bring to this environment and what challenges might you face?
    • Teams at AWS are very independent
      • Upper level managers don’t really set agenda
      • Teams fight and haggle
      • Typically: great idea, there isn’t capacity to work on in internally
      • Still burden of review
  4. Give an example of a significant project that you completed independently?
    • How long was the project?
    • How much did you rely on guidance from others (e.g. a client, manager, advisor, mentor, etc)?
    • How did you gather feedback from others?
    • Did you discover the design or requirements changed as you progressed in the project? Why? How did you handle that?
  5. When is a project “done”?

    What do you define as a project? Design it, get consensus on design, get merged, only after gained experience in the wild.

  6. Do you have experience working with remote collaborators?

    EC2 in Cape Town does much of the control plane work. Generally don’t work on the hypervisor. Collaborated much with the Dresden and Seattle team.

    • None of that in person
    • Way more asynchronous work
      • Stand up meetings for local team
    • One member of team at 11pm

      For the past year, freelancing for async clients

  7. How often do you prefer to check-in with stakeholders on your project?
    • As often as needed
  8. What is your preferred mode of working in a group?
  9. What challenges do you foresee on-boarding to working on Tock in this role?
    • Tend to be best where I understand the goal of the system
      • But its the best way to approach things
      • Others tend to thrive better in the land in the unknown
      • Ways to make progress involve understanding the low-hanging fruit
      • Want to get dividends payed out from the start

1.2.2. Gabriel Leupin <2023-11-10 Fri 13:30>

  1. What is your experience with:
    1. Low-resource microcontrollers or other hardware facing development?
      • At Mercedes worked with on-board CPUs, consumers of output of CPU
      • Noticed issues with C++
    2. Rust
      • Have been working in Rust for a couple years
      • Mostly in distributed systems
      • Big fan of memory safety
    3. Automated testing and continuous integration
      • Jenkins
      • Made a small deployment engine recently
      • Limited experience with CI
    4. Secure system design
      • Primarily as a user of secure systems, mostly authentication patterns
  2. What is your experience with community-based open source projects?
    • Used Open Telemetry, project with SIGs etc
  3. Tell me about a scenario where you worked in a multi-stakeholder setting?
    • Mercerdes “internally open source”
      • Responsible for reviewing PRs from the team in India
      • Interfacing with many teams around the world
      • Logging is a critical component
    • Entirety of the company underwent a transition, delayed by years
      • Logger became a more unified framework
      • Competing interests with what made sense to do
      • A lot of meetings, a lot of understanding of the core technology details
  4. Give an example of a significant project that you completed independently?
    • Education startup building a search engine
      • Planful Learning and Assessment
      • Took on a lead role of the search engine and model based on Netflix recommendation engine. Human in the loop + extensible
  5. When is a project “done”?
    • When its suited for its primary use case
    • Have a test for the first big use case
  6. Do you have experience working with remote collaborators?
    • Much of the work since the pandemic has been remote
      • Daily standups with team
      • Meetings at times for different time-zones
    • Hybrid might be favorite
    • Like meetings over async
  7. How often do you prefer to check-in with stakeholders on your project?
    • Balance to be struck between be able to think through yourself and unknown time-bound
      • But asking to many questions of other people
      • Early on helps to ask a lot, then show testimony you’ve learned from what you’ve said
    • Planful
      • Early on met a lot
      • As soon as spec was set, very self directed
        • A few weeks or months mostly independently
  8. What is your preferred mode of working in a group?
    • Very comfortable working in a group
      • Good to be professional
    • Mercedes, work was pretty isolated
      • Would wait asynchronously
      • Pleasant though sometimes aggravating
    • Ed startup was more free-for-all
      • Liked both
  9. What challenges do you foresee on-boarding to working on Tock in this role?
    • Learning curve
    • Majority of company at Mercedes was German
      • Most people in office were native German

1.2.3. Gregory Terzian <2023-11-13 Mon 10:30>

  1. What is your experience with:
    1. Rust
      • Servo work very relevant
      • Started working with Rust on Servo
    2. Low-resource microcontrollers or other hardware facing development?
      • No experience
    3. Automated testing and continuous integration
      • Used it a lot, almost every project has something set up
      • Servo had more of a bespoke thing
      • Not too involved with the design of the systems
      • But used them extensively
      • Empathy for dealing with one, especially in an open source context
        • Smoke tests vs actual test run
    4. Secure system design
      • Tock design reminiscent of browser
      • Good understanding of background for the need for processes isolation in browsers
      • Worked in the blockchain space in Rust
        • A bit ambivalent now
        • Opportunity to work in Rust professional
        • Very specific kind of distributed system
        • Various systems in Byzantine settings
  2. What is your experience with community-based open source projects?
    • Most notably Servo
      • Largest in terms developer community
      • Largest in size of code base
    • Automerge, CRDT, sponsored by a different company
      • Wanted to solve a particular problem
      • Small project with limited budget, with particular goal for a sponsor
      • Library would be nonetheless should contribute to the ecosystem around automerge
    • Servo
      • Many of the Mozilla employees working on it because Mozilla wanted them to work on it
      • Mozilla focused more on pet-projects, e.g. VR, not the web standards
    • Also ended up working with standards “bodies”, e.g. the common test suite
      • Work within the constraints of standards
  3. Tell me about a scenario where you worked in a multi-stakeholder setting?
    • Before time in Rust, in Python, hired by company for grant matching tool
      • Mostly organizational challenges: e.g. conflicts between sales and engineering, such as where to post. CEO and Sales had conflicts
    • Experience with open source has been looser
  4. Give an example of a significant project that you completed independently?
    • Automerge project:
      • Had a JavaScript implementation already
      • But would do it differently than in Rust
        • A bit of figuring out what we wanted to do
      • Initially talked quite a bit (a couple times a week)
      • Then work on my own for a few days, then discuss
    • With Servo just picked an issue to work on
      • Some projects would take months
      • Could ask for early feedback, but mostly independently working on the work
      • Had to communicate issues with initial agreed designs given the details
  5. When is a project “done”?
    • Sometimes the money runs out
    • For example, on Servo, time not an issue
      • At some point, e.g., how much can we get the test suite to pass?
  6. Do you have experience working with remote collaborators?
    • Most of work is remote
  7. How often do you prefer to check-in with stakeholders on your project?
    • Depends:
      • If working with people on code or some artifact, then on daily basis
      • Otherwise can be more like once a week, maybe for more social reasons
      • For stakeholders, really depends
        • Mozilla “meet-up” meetings in person were great
        • Video conference calls maybe once in a while
  8. What is your preferred mode of working in a group?
    • Like to have time on my own every day
      • Need to have a block of time
    • Also to need to get feedback on output
    • Some social interaction is also important
      • E.g. chat
      • Video chat
      • But for social
    • E.g. Chromium has guidelines about how quickly you need to answer questions
  9. What challenges do you foresee on-boarding to working on Tock in this role?
    • Building testing infrastructure is new
    • Integrating with the team may not be easy
    • Hardware oriented software development

1.2.4. Justin Frevert <2023-11-13 Mon 13:30>

  1. What is your experience with:
    1. Low-resource microcontrollers or other hardware facing development?
      • None
    2. Rust
      • Working in Rust for ~2 years
        • Mostly stuff that compiles in nostd and in WASM
        • No multi-threading
        • No heavy lifetime stuff
      • 100% Rust
      • Came into it through Blockchain
        • Wanted to build protocol that would marry interests in media & finality
        • Started learning Rust around a particular project
    3. Automated testing and continuous integration
      • Worked with GitHub actions and AWS services along the same lines
        • Just specifying the YAML automation for the pipelines
    4. Secure system design
      • Alot of work around blockchains involve security considerations
        • Much work done in adversarial environment
        • Might need to worry about possible vulnerabilities of code
      • Example: staking protocol at FUTUREVERSE
        • Could see that people could influence the speed at which something could run
        • Opted for deterministic computation
  2. What is your experience with community-based open source projects?
    • Have worked entirely in open source projects
      • RISC-ZERO, a risc-v based virtual machine, execution backed by a zero-knowledge proof
      • some contributions to other projects
  3. Tell me about a scenario where you worked in a multi-stakeholder setting?
    • Most recent role at FUTUREVERSE, on a team building a Rust/WASM stack
      • Management was used to apps that could iterate in very fast cycles
      • Developers (me) didn’t necessarily agree with methodology
      • Spent a lot of time pushing for more quality procedures
      • Was able to push for another week
  4. Give an example of a significant project that you completed independently?
    • Pretty interested in properties of polynomial commitments
    • Built a fully implemented KZG commitment scheme
  5. When is a project “done”?
    • Depends
    • For something like KZG, the state where the library can compute
  6. Do you have experience working with remote collaborators?
    • Mostly remote work in the last few positions
  7. How often do you prefer to check-in with stakeholders on your project?
    • Roughly weekly check-ins
    • + semi-asynchronous environment
    • Written communication in particular
  8. What is your preferred mode of working in a group?
    • Strong written communications, appreciate detailed PRs/issues/etc, as well as a chat
    • Periodic calls (e.g. one or twice a week)
  9. What challenges do you foresee on-boarding to working on Tock in this role?
    • Lack of foundation in microcontrollers and systems
      • Ask for quick resources
      • Have to do pretty broad research
      • Don’t necessarily know the terms to look into
    • Could improve on CI & testing, never had a role that focused on it

1.2.5. Sean Cross <2023-11-15 Wed 09:30>

  1. What is your experience with:
    1. Low-resource microcontrollers or other hardware facing development?

      Automated test & CI

      • Love-to-code, 32kB flash and 4kB of RAM
        • Demodulated over-the-air programs
        • Created an opcode-based thunk-system
      • Done a lot of hardware products
        • All requires a factory test that runs on the actual hardware
        • Difference between factory and CI: testing for did all the connections get made
          • Very important: always ask “what are we testing”
          • In factory, testing resoldering, e.g.
      • Renode for hardware testing
        • Use a bunch of embedded operating system development
    2. Rust
      • Mostly delt with building the libstd world
        • Have some platform code that is upstream in Rust
        • libstd support for Xeus upstream
      • No specific experience in embedded development in Rust
        • Nightly support
        • ufmt
    3. Secure system design
    4. Operating system development
      • Work on Xous
        • Security: can request a physical area of memory
        • Used on two platforms
          • precusor platform (RISC-V based smartphone)
          • Foundation OS
  2. What is your experience with community-based open source projects?
    • Have contributed code to Linux
      • Lots on minutia to get it just right
      • A little bit too draining
    • Gotten things merged in Rust
      • Fastest is 10 minutes
      • Slowest is 1.5 years
    • Have to be patient
    • Other community-based OS projects:
      • Drive by patches on GitHub all the time
      • Big fan of making things as easy to build as possible
        • Making it simple for development platforms as well
    • Black magic project
  3. Tell me about a scenario where you worked in a multi-stakeholder setting?
    • Unwinding support in Rust
      • Rather invasive and platform-specific process
      • Turns out much of the patching for LLVM in Rust is for SGX
      • Had to re-assure that this won’t remove LLVM’s unwinding
  4. Give an example of a significant project that you completed independently?
  5. When is a project “done”?

    “How do you finish a project”

    • Minimum amount of functionality, at least MVP
      • For fooboot, e.g., had planned for a secondary platform, but never did it, because people weren’t using it that way
    • For firmware, it’s done once it ships (?)
    • “Trying to lower the bus factor”
  6. Do you have experience working with remote collaborators?
    • In open source
    • Much of the work is remote
  7. How often do you prefer to check-in with stakeholders on your project?
    • Usually weekly is a good cadence for checking in with people
  8. What is your preferred mode of working in a group?
    • Like to batch things up and have questions combined
      • So quarterly or half-yearly meetings
      • Conferences are great
    • When working on a module, a video can be helpful
      • E.g. for deeply embedded keyfob
      • Maybe every couple of days
      • Being in a chat
  9. What challenges do you foresee on-boarding to working on Tock in this role?

1.2.6. Roy Ben-Abraham <2023-11-22 Wed 10:30>

  1. What is your experience with:
    1. Low-resource microcontrollers or other hardware facing development?
    2. Rust
    3. Automated testing and continuous integration
    4. Secure system design
  2. What is your experience with community-based open source projects?
  3. Tell me about a scenario where you worked in a multi-stakeholder setting?
  4. Give an example of a significant project that you completed independently?
  5. When is a project “done”?
  6. Do you have experience working with remote collaborators?
  7. How often do you prefer to check-in with stakeholders on your project?
  8. What is your preferred mode of working in a group?
  9. What challenges do you foresee on-boarding to working on Tock in this role?