Senior Engineer - Internet Systems Engineering Philadelphia, PA
This individual will be a member of the Product Engineering organization supporting messaging and other Internet systems. This person will design, develop, and support applications that will be utilized as part of the Comcast messaging platform, as well as other Internet systems.
Development work will range from creation of software tools to support the full range of activities necessary to deliver various messaging and other services on an end-to-end basis. This will often involve creation of new applications, often with a focus on rapid deployment and iterative updates. This will also include building and integrating reporting, monitoring, and data analysis tools, creating automation tools to assist with systems administration and troubleshooting, and more.
This person must be able to rapidly identify and explain design issues and challenges, and think on their feet. Day-to-day activities will range from high-level design, to application development, to hands-on systems administration and operational support, requiring self motivation and a wide range of skills and experience. This individual must have the ability to understand business needs, working closely with product managers, and strike a good balance between business needs and technical implementations. This individual will also be fairly autonomous and be expected to contribute to a wide range of high-impact projects across the organization.
Major Duties:
Design, develop, implement and support messaging, database, directory, and web-related systems.
Java application development, and other languages and tools as appropriate.
AJAX, Ruby on Rails, JavaScript, XML, and HTML development, and related web tools as appropriate.
Database design and development, particularly for MySQL.
Develop designs that focus on active-active clustering, N+1 horizontal scaling, geographic redundancy, high-performance at low cost, innovative use of storage and storage networking, and simple elegance.
Provide review and input to business requirements, and using those to develop technical requirements and, eventually deployable systems.
Design and develop automation tools to help the team's systems administration, anti-abuse and other engineers, customer security assurance technicians, and business operations personnel, to manage the various application platforms more efficiently, including tools to deploy software, rapidly apply new policies or functionality, verify consistent configurations, automate functions, analyze log data, and troubleshoot problems.
Evaluate various implementations to determine compliance with business requirements and external specifications (e.g., PacketCable and IETF specifications).
Perform troubleshooting and coordinate problem resolution activities with other support teams (e.g. network support, vendors).
Develop test plans/cases to be used in verifying documented requirements.
Participate in / oversee the testing and certification process as needed.
Establish and maintain productive relationships with peer organizations.
Establish and maintain productive relationships with vendors.
Assist with making vendor selections, and developing schedules and budgets.
Some travel required, must have a valid driver's license.
Other duties as assigned.
Required Skills:
Education:
Bachelor's degree in Engineering or Computer Science or equivalent in work experience and self-study.
Advanced degree is a plus.
Requirements:
Demonstrated ability to deliver the items listed in the major duties section.
Demonstrated knowledge of Internet protocols and standards, including TCP/IP, SMTP, POP3, IMAP4, LDAP, SOAP/XML, SSL and HTTP.
Demonstrated experience with IP Networking (e.g., TCP/IP, DNS, DHCP, NAT).
At least 5 years experience with UNIX and Linux operating systems, such as RedHat and Sun Solaris.
At least 5 years experience in application development. Specific experience with web and messaging systems is preferred.
At least 5 years of Perl software development experience in a Unix/Linux environment.
At least 3 years of software development with design responsibilities.
Demonstrated understanding of the software development life cycle and agile development.
At least 5 years experience creating web pages using HTML and CSS.
At least 5 years designing and developing for SQL databases (Oracle, Postgres, MySQL, etc.)
Experience administering databases and application servers such as Oracle, MySQL, Derby, BEA WebLogic, WebSphere, JBoss, Apache, Tomcat, and Jetty.
Development using web services technologies such as SOAP, XML, and REST.
Creation of Unix shell scripts to automate tasks and perform other functions.
Demonstrated understanding of the software development life cycle and agile development.
Demonstrated ability designing large scale LAMP (Linux / Apache / MySQL / PHP) architecture web sites
Experience with Java, C++, or Ruby on Rails is a plus.
Experience developing Web 2.0 / AJAX functionality using JavaScript/DOM is desired.
Software development experience in PHP, Python, Ruby or other similar languages is desired.
General knowledge of the following categories of network systems: Multiprocessing, Threading, Distributed systems, Load Balancing and High Availability.
Excellent written and verbal communication skills.
Demonstrated ability to work effectively across organizational boundaries and within groups.
Must be a flexible, resourceful, team player that is able to thrive in a fast-paced, constantly changing environment.
Creative thinking and critical analysis are essential.
Must have a professional work ethic and positive attitude.
Demonstrated ability to produce results with minimum direction.
Demonstrated interest in continuing to grow professionally and learn new things.
|