Edward M. Roskos

489 Tea Tree Terrace

Sunnyvale, CA  94086

edroskos@edroskos.net

(732) 306-6495

 

      Hard-working, goal-focused software generalist with over 20 years of real-world experience.

      Well-rounded: able to code, design, architect, and (when necessary) manage people and projects.

      Written over a million lines of code in many languages in various areas of technology.

 

2011-06 to Present

Evernote, Mountain View and Redwood City, CA

  High Level

  Primary focus on service backend, working on business logic and scalability with Hibernate and Java.

  Often worked alone for months on large projects before coordinating with system test and operations.

  Took initiative to write unit test frameworks that were widely used by all service developers.

  Significant contributor to the hiring process.

  Specific Accomplishments

  Re-designed and re-wrote the service sync engine, building "index" tables to sync personal accounts, shared notebooks, and business accounts at a scale anticipated over the next several years.

  Designed and implemented the initial Evernote Business backend, except the commerce changes.

  Developed an Android sync engine that was used for Evernote Food and Hello.

  Developed the initial version of related notes and findRelated().

  Tech lead for the sharing sub-system on the service, implementing new features and conducting code reviews.

  Re-designed and re-wrote the authorization sub-system to handle significant new features and for cleanup.

  Designed and implemented the Reminders back-end support, including support for efficiently aggregating daily reminder e-mails.  Included a time zone "guesser" from client-provided time zone information.

  Worked on design, and implemented, server-side activity stream support.  Example use: Windows, Mac

  Worked on design, and implemented, server-side support for notes that mix structure and formatting, used by Evernote and 3rd party clients (contentClass and applicationData).  Supported use of feature by Evernote Food and Hello.

  Updates to password hashing on the service.

 

2010-04 to 2011-06

Violin Memory, Mountain View, CA

  Senior Architect

  Defined the embedded software architecture for the next-generation of technology, introducing support for controller redundancy and higher performance.

  Worked with the team on design practices to move away from a monolithic design/implementation and towards a more maintainable, verifiable code base.  Introduced code reviews.  Focused team efforts.

  Designed and implemented (in C) algorithms for the next generation of technology, including support and verification of new topologies, spare selection, routing/striping, and virtual-to-physical mapping.  Selection of routes, striping, virtual-to-physical mapping, and spares impacts performance and resiliency to failures.

  Lead system integrator for the next-generation technology.

  Director of Embedded Software

  Helped rebuild the embedded software team, developing a staffing plan, contacting recruiters, screening resumes, scheduling in-person interviews, and providing justification for new hires.

  Defined roadmap, conducted team meetings and one-on-ones, and called meetings with other teams as needed.

  Re-established system test and release management procedures, working with the team to stay focused on goals, write test plan and release documentation, and promote better bug-writing discipline.

 

2008-06 to 2010-04

Yahoo, Sunnyvale, CA

  Software Sys Dev Eng, Principal

  Senior member of the main Web Search engineering organization for Yahoo, focusing on Runtime Systems.

  Selected to the Technical Advisory Board to review submissions to the Yahoo! Tech Pulse Conference.

  Owner of one of the core modules, known as the Blender, for the search engine (SE) proxy.  The proxy sits between the front-end and search engines and provides business logic for spell correction, query re-writing, and blending.

  The Blender iteratively collects data from various search databases and blends them into a final result set, accounting for complexities introduced by result scores, paid-inclusion, editorial judgment, distributed annotations, and the varying result qualities from the different search databases.

  Provided review and engineering leadership for science team projects to improve the use of limited search engine capacity to maximize relevance and minimize latency.  Successfully lead projects from inception to deployment.

  Developed C++ and Python packages to deep dive logs to analyze traffic and performance related to Blending.

  Tech Lead, Senior Manager

  Successfully led (day-to-day) the complex Real-Time Indexing (RTI) Project that involved dozens of engineers covering many teams, including crawling, indexing, searching, business logic (proxy), content selection, ranking, operations and cluster management, capacity planning, messaging, product management, and architecture.  Leadership roles covered technology (architecture), people management, project management, and program management.

  The RTI Project delivered web results in less than 10 seconds from crawl-time for selected content.  Successfully deployed into production where it ran for months until the Bing technology transition.

  I entered the Tech Lead role while working on Blender-related designs for RTI.  After professionally raising issues, I was honored by being asked by the team to accept the Tech Lead role.

  Co-author of Real-time indexing: An architecture to deliver real-time content in Yahoo! Search, which was presented as a poster at the Yahoo! Tech Pulse 2009 Conference.

  Technical leadership and architecture tasks included work to maintain application semantics across the stack of search back-end technologies, changes to accommodate existing operations infrastructure including design work for cluster management and software upgrades, design work to support various BCP scenarios, design work for handling of various caches in the search stack, design work for handling remote sites around the world, and defining requirements to improve monitoring and debugging of the application.

  Management tasks involved direct management of 7 engineers, day-to-day coordination of ~18 engineers, defining program stages and gates, and maintaining a project plan through various scrum meetings and program meetings.

 

2006-02 to 2008-03

Violin Memory, Iselin, NJ

  Senior Software Engineer

  First member of software team at Violin Memory, a startup building high performance storage appliances.

  Initial software developer, designing and coding the initial simulator (used for static analysis of topology and board layout), control plane, RAID, and device driver.

  Defined the software architecture, including horizontal support (dispatching loop, publish/subscribe IPC, timers, resource tracking, etc.), embedded applications (control plane, inventory and discovery, system monitor, RAID), systems management (data modeling, CLI, SNMP, XML interface, configuration/validation, device manager), device driver (PCIe, block device, char device, mmap), and simulator.

  Put key infrastructure in place including software builds and test automation.

  Director of Software Engineering

  Oversee high-level design efforts to insure completeness and correctness w.r.t. overall system architecture.

  Built a software team from scratch. Worked various sources including on-line job posting sites, recruiters, personal networks, and mailing lists. Conducted phone-screens, hosted interviews, and recruited candidates.

  Planned projects and releases, recorded team status, and coordinated inter-team activities. Met delivery dates.

  Defined the software roadmap and prepared budget estimates.

  Worked on various market opportunities for our technology, gaining exposure in the areas of SAN, NAS, object-based storage, file systems, flash technology, and other uses of solid-state storage.  Performed a number of benchmarking and evaluation experiments.

  Modified memcache to work with our appliance. Visited prospective customer sites, gave presentations, answered questions, provided support, and installed our appliances and software.

  Member of bug review board and participant in release management decisions.

  Established initial system test practices and tools.

 

2005-10 to 2006-02

Lucent Technologies, Holmdel, NJ

  Contractor, short-term

  Assisted a newly formed Bell Labs project by defining architecture, designs, and functional scenarios.

  Assist team building by interviewing prospective candidates.

  Provide initial code-base from legacy projects.

 

2001-04 to 2005-09

UTStarcom, Iselin, NJ (acquired: Xebeo Communications)

  Test Automation Technology Senior Manager, Common Engineering

  Built upon initiatives started for the IP-DSLAM project (see below), but applicable to the global engineering teams.

  Visited sites throughout the US and China, discussed challenges and successes in software engineering.

  Formed and lead a core team from each site to develop technical solutions for test automation.

  Consulted on software development methodology and role of test automation in both cost and quality.

  Tools and Automation Team Lead

  Team Lead: IP-DSLAM Tools & Automation; improve quality & efficiency of an engineering team of several dozen.

  Began initiative to build test automation technology/methodology to improve quality and reduce development costs.

  Began initiative to unify results from unit, integration, and system test for both manual and automated testing.

  Began designs on horizontal support libraries to improve testability of code base.[EMR1] 

  Device Management Team Lead, Distinguished Engineer

  Device Management Team Lead for a large router: CLI, SNMP, XML, NTP, radius, embedded database, etc.

  Numerous embedded software architecture, design, and development projects and discussions.

  Oversaw full development cycle including independent unit and integration verification.

  Full development life cycle, member of bug review board and second-tier field support.

  Participant in discussions on the IETF NetConf draft (to replace legacy network management UI's with XML)

  EMS Integration Site Lead

  NJ-Site Prime (Lead) for EMS integration for the BBSwitch router project.[EMR2] 

  Designer and implementer of the tool-chained mediation layer from our XML interface to Managed Objects.

  Oversaw full development cycle including integration and system verification for our site.

  Xebeo Communications, Senior Software Developer

  Played a leading role in the design, architecture, and development of several key subsystems.[EMR3] 

  Designed/developed database client for a proprietary, distributed, hierarchical database. The design addressed common needs of selection, iteration, distributed get operations, wild-card/value ranges, and state synchronization.

  Designed/developed a client-side subsystem to break-up large replies for pagination by CLI and XML interfaces.

  Designed and developed the candidate-configuration validation subsystem. Used fork() and copy-on-demand paging.

  Designed/developed an XML interface using SOAP 1.1 and SSH.

  Worked on the architecture of a proposed Xebeo EMS Server. Work included database and app server evaluation.

  Initial design and hand-off on our log and alarm messaging and SNMP agent subsystems.

 

1998-06 to 2001-04

Lucent Technologies, Holmdel, NJ

  Neptune and Pluto Projects

  Lead software architect for system and device management of a multi-service optical router.

  Originated architecture & design ideas for discussion with leading team members.

  Team lead/developer for platform & user interfaces. Set objectives, defined deliverables, coordinated team activities.

  PacketStar Project

  Lead for CLI & shell subsystems. Set objectives, defined deliverables, & coordinated activities of a 4-member team.

  Ensured quality of delivered code through design and code reviews.

  Developed a way to calculate help, security, and keyword expansion information from generated LR parse tables[ER4] .

  Daily interaction with a team of 50+ engineers. Prepared & gave presentations on CLI policies and API's.

  Member of bug review board meetings.

 

1993-07 to 1998-05

AT&T/Bell Labs, Holmdel, NJ

  Analyzed field-deployed speech applications/trials.  Consulted with customers on data content required for analysis.

  Presented analysis to customers and vendors inside and outside of AT&T.

  Coordinator of technical operations for AT&T's speech lab, then the largest database of transcribed speech.[EMR5] 

  Key developer on a platform integrating advanced speech technology with touch-tone applications.[EMR6] 

  Designed/developed software to generate call flow graphs showing traffic through key application milestones.

  Designed/developed flexible work distribution software for speech sample labeling[ER7] 

  Designed/developed software and a programming language to configure screens for speech labeling.[EMR8] 

  Lead a quality improvement initiative program to improve the accuracy and efficiency of our labeling operations.

  Project manager for integration of Informix to manage our labeling data.

EDUCATION

       MS Computer Science, January 1998, Rutgers Graduate School of N.B, Rutgers University

       BS Electrical Engineering, January 1992, College of Engineering, Rutgers University

       BA Computer Science, January 1992, Rutgers College, Rutgers University


 [EMR1]Missing from the code base where effective logging and resource tracking API's, among others.

 [EMR2]The project mediated from our XML interface into Managed Objects/ AdventNet via a toolchain which combined heuristics and hand-tweeking to rapidly mediate over 300 MOs to the EMS.  Our site also developed support utilities and the configuration manager application.

 [EMR3]... for an optical packet switch.  Also contributed to a number of other discussions and candidate interviews for our strong team.

   [ER4]Gained expertise in maintaining large languages (19000+ line BNF file) & keeping them in sync with user docs.

 [EMR5]Covering many different foreign languages and vocabularies.

 [EMR6]Focusing on data collection and recording.  Defined requirements for audio and log data generation and collection from the platform.  Also developed and unit-tested a software package to collect data without impacting speech application performance.

 [ER7]The framework allowed for controlled duplication of work for comparative analysis.

 [EMR8]Developed a shell to coordinate different programs used to gather data from teams of labelers.