New York Tech Journal
Tech news from the Big Apple

CodeDrivenNYC: bridging the #Culture gap between #software and #hardware, modern #SQL, #managing engineers

Posted on October 28th, 2015


10/28/2015 @FirstMark, 100 5th Ave, NY

20151028_182543[1] 20151028_184649[1] 20151028_192021[1]

Three speakers spoke

Colin Vernon @littleBits spoke about bridging the cultural gap between software and hardware engineers. This is especially important at a company that creates modules for users to assemble into standalone prototype devices (Internet of Things). From his position as Director of Platform, Colin talked about the wide diversity of skills needed to manage the hardware/software stack.

This diversity also leads to differences:

  1. Two cultures: software – agile, hardware = not agile
  2. Two paradigms: software – abstractions; hardware – simplest method is best.
  3. Communication styles: software – chatty; hardware – brevity and clarity

He recommends letting the cultures be different and to concentrate on touch points

  1. Identify what you have in common and strengthen it.
  2. Compromise, don’t pick anyone’s last choice. – e.g. currently doing things in Go
  3. Don’t meet in the middle (no overlap). Have both sides stretch to create an overlap.

Next, Spencer Kimball @Cockroach Labs compared their data base to other popular data bases. Cockroach aims to combine the best characteristics of SQL databases with the advantages of replication across many nodes such as survivability, consistency, and ease of deployment.

They like SQL since it is widely adopted, schemas are useful to clarify your thinking, and can also use the relational structure for complex data analytics. They have also extended SQL by allowing their databases to scale out across servers, create hierarchical tables & other modern features; don’t lock database when schema changes.

Spencer next talked about the key foundational ideas they have incorporated

  1. Started by considering Transactional Key Value store as a foundational building block.
  2. Provide fully distributed transactions.
    1. serializable by default.
    2. No strict locking – makes things faster, but increases chance of defaulting on shared resources.
  3. Others use consistent hashing scheme to locate where data is stored, but this slows sorting which makes it problematic for relationship databases.
  4. Use a bi-level index to get the best of range-segmented key space yet allow the db to expand
  5. Raft is a consensus algorithm that is simpler to understand than Paxos. It can replicate data which makes it robust and gives consistent answers. It is designed for strong consistency (as opposed to eventual consistency).

Finally, Duncan Glazier @Shopkeep talked about his methods to improve organizational efficiency and produce happy engineers. His main point was that the goals of engineers and managers should be aligned.

Everyone in an organization should have goals including challenges & a metric of success. By making these goals visible to all others in the company, everyone can see how their goals match those of management and others in the firm. He also feels that it is important to get feedback from managers and peers.

posted in:  Code Driven NYC, databases, Programming    / leave comments:   No comments yet