I use software development to work towards your organizational goals, by identifying problems and critical path requirements, and then figuring out and implementing the solution. Those might include an exploratory prototype, production-quality software, or a better development process for my team.
I can choose the appropriate balance of delivery speed, quality, and functionality to meet each particular situation. And I make sure there are feedback loops so both products and processes can keep improving.
With over 20 years of experience, I've worked as an individual contributor, as part of technical leadership, and on occasion as a team lead. Areas of focus have included high-performance C++, distributed systems with Python, container and storage infrastructure, open source maintenance, and most recently scientific computing.
2017 - present: Scientific programming, ReadCoor
ReadCoor's spatial gene sequencing platform, Fluorescent in-situ Sequencing (FISSEQ), produces comprehensive readouts and 3D images driving swifter scientific discoveries, disease diagnosis, and treatment development.
Took a research-grade initial set of image processing algorithms—some working and others buggy or wrong—and turned them into a production-ready computational pipeline.
- Took data results from not-very-useful to pretty-good, by iteratively improving a suite of algorithms.
- Ensured algorithms supported input data as it changed over time based on improvements in biology and chemistry processes. Additionally, supported processing of one-off experiments by scientists.
- Reduced computation costs (both time and money) via memory and CPU optimization and algorithm tuning.
- Built computational and management infrastructure for automatically running the whole pipeline end-to-end, as well as profiling and logging tools for optimization and debugging.
- Extracted knowledge from scientists' zeitgeist into actual code.
- Built UIs, visualizations, and reports to help scientists understand the results.
- Created automated end-to-end tests for the algorithms using simulated data, in addition to the usual unit testing.
Technologies used include NumPy, SciPy, scikit-image, Dask, Pandas, AWS S3 and EC2, matplotlib, Jupyter, Zarr, Vue.js, Cython.
2016 - 2017: Principal Software Engineer, Datawire
Datawire is building microservices infrastructure and tools to help growing companies scale.
- Built an easy-to-use experience for a complex system built on some low-level trickery (LD_PRELOAD, a custom DNS server, iptables, and other fun Linux and macOS features).
- Worked on increasing user uptake. This involved responsiveness to user requests, optimizing the landing page, content maketing, and writing documentation.
- Fixing problems in the source transpiler.
- Discovering and fixing a problem in a 3rd party framework written with a programming language I'd never used before.
- Building an integration with a new 3rd party framework.
2013 - 2016: Principal Software Engineer, ClusterHQ
ClusterHQ was a startup, sadly deceased, building the future of data storage for Docker and other container systems.
As part of the leadership of the engineering team, I designed and wrote software in order to directly meet the company's changing goals, with a strong emphasis on appropriate levels of quality. Much of my time was spent working on Flocker, an open source distributed storage manager for containers.
- Ensured our first iteration for Flocker provided a realistic demonstration of the company vision, while still launching quickly and on schedule. We raised a $12 millon Series A VC round based on that initial proof-of-concept.
- Designed a model, and co-authored the relevant patent, that allowed us to support multiple forms of backend storage, including cloud-based block storage. This greatly expanded our product's market reach, and helped land our first customer.
- Helped partners at EMC implement the first 3rd-party storage backend for our product.
- Launched a 1.0 release on schedule with a completely new architecture, and ensured a production-ready product by finding and fixing critical bugs and design flaws.
- Helped design semantics for the company's next generation storage layer, including investigating integration points with other systems, validating use cases, prototyping and then implementing the resulting design.
I worked with a variety of technologies along the way, including Python, Docker (I implemented a Docker storage plugin), Go, Swarm, Kubernetes, AWS and OpenStack cloud APIs, libgit2, property-based testing libraries and persistent data-structures.
2012 - 2013: Consultant, Future Foundries LLC
As part of two-person consulting firm designed and developed software for a number of clients. Projects included a peer-to-peer message-based SMTP load balancer, a JSON-based API for MIME generation and batch message sending, and a cloud storage backend.
Developed training material and taught multi-day classes for Cisco software developers in the UK and Norway and VMware and Rackspace developers in San Francisco (the latter with my colleague Jean-Paul Calderone).
2011 - 2012: Product Manager, Google
Leading up to a successful production launch for the airline reservation system, tracked Inventory Control's business requirements, coordinated between engineering, operations, QA, the customer and third party vendors, coded analysis tools to catch problems in the production system, and in general ensured the component met requirements and launched successfully.
After the launch, made sure the system was operating correctly and meeting customer's needs using analysis tools, bug reports, and customer communication, handing off tasks to engineering and ops as necessary.
2004 - 2011: ITA Software (purchased by Google in 2011)
2009 - 2011: Product Analyst, Inventory Control group
Investigated business logic and technical requirements, created architectural design documents and wrote documentation. Coordinated between engineering and operations groups, and engaged owners of related components, GUI designers and other stakeholders to ensure the product met customer needs.
2007 - 2008: Senior Software Engineer, Airline Reservation System's Schedule Server team
In latter part of period, led the team and worked on overall system design with tech leads of other groups. Helped gather requirements, and set priorities and goals.
Worked as part of team on design and implementation of transactional airline schedule distribution server written in Python and C++, receiving multiple schedule formats and distributing them to other systems. Designed and implemented large parts of the persistence layer, as well as transactionality, replication and high-availability. Developed core business logic and network protocol implementations.
2006 - 2007: Software Engineer, Airline Reservation System's Core team
As part of ITA's new airline reservation system, written from the ground up in Common Lisp, designed and oversaw implementation of the access control framework. This involved talking to domain experts at the airline and generalizing their knowledge (they thought in terms of mainframe commands, not an abstract model.)
I built a model that would make sense to the airline, would be easy for developers to use, and could be customized for the very different requirements of different airlines.
2004 - 2006: Software Engineer, Flight Availability team
Identified unmet needs and then implemented two independent projects for the operations group:
- A reliable multicast library with congestion control, written in C++ and Python.
- A prototype-based configuration library and language for concisely configuring large numbers of similar but non-identical systems.
Worked as part of team on distributed high-performance server system written in C++, with each server handling tens of thousands requests per second. Coding included development of new features, integration of a new internal network protocol, communications support for external systems, airline-specific proprietary business logic as well as maintenance and bugfixes.
2002 - 2004: Consultant
Implemented and helped design a web-based distributed educational system for a government agency in California. The system allowed migrant workers' children to access the same curriculum from multiple schools, and supported offline read/write access with periodic synchronization to a centralized server.
Consulting for various companies in the US and Europe.
2000 - 2002: Co-Founder, Zoteca
As co-founder of startup, designed and implemented a content-addressed storage platform. Author of a patent for Zoteca's technology (see link below).
1999 - 2000: Lead Developer, OneBigTable.com
OneBigTable was a web startup in the areas of food and culture. Using Zope, an object-based application server, led small team that built a high-level food, nutrition and recipe content management system, including a workflow system and administration tools.
1994 - 1999: Programmer, MAXIMA New Media
Developed a multimedia informational center for the Israel Museum, Jerusalem, a number of multimedia CD-ROMs, and database-driven web applications.
Author of Eliot, a logging library for complex and distributed systems that outputs causal chains of actions happening within and across process boundaries: a logical trace of the system's operation.
One of the original developers of Twisted, a Python networking framework that is used by Apple, Justin.tv, TweetDeck, and Lucasfilm among others. Worked on the core networking package (TCP, UDP, SSL, and multicast) and protocol implementations, e.g. HTTP/1.1.
See https://github.com/itamarst/ for other contributions.
Application 20160162209 for A Data Storage Controller, with Jean-Paul Calderone.
Patent #6662198 for Method and system for asynchronous transmission, backup, distribution of data and file sharing, with Prof. M. Satyanarayanan.
Harvard University Extension School: Bachelor of Liberal Arts, 2009
Area of concentration was humanities.
Tel-Aviv University and Bar-Ilan University: Computer Science and Mathematics coursework, 1996-2000
US Citizen. Living in Cambridge, MA. Formerly known as Itamar Shtull-Trauring.