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.
á
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.