The Senior Software Design Engineer is responsible for the design, development, testing, and tiered support of custom-developed applications deployed into a large, geographically distributed enterprise. Depending on customer needs, application development may be required in areas such as real-time high-speed data processing or high-speed file processing and management.
The candidate may also be responsible for specifying hardware platforms needed to support program processing objectives in the areas just described. The candidate will be working in an agile development environment, collaborating with stakeholders to understand application needs and to design and implement solutions that fit within program constraints such as budget, schedule, security, performance, hardware, etc…
Expected to learn and maintain an existing code base written in a variety of languages, and may leverage this code base as well as open source tools and packages where necessary to increase efficiency and reduce risk.
Will test and document code for delivery to internal and possibly external organizations for additional integration and testing, and will provide support for bug fixes and the troubleshooting and resolution of field issues.
In addition, the candidate will need to analyze future architectures to understand planned enterprise and platform evolution. The candidate will identify potential challenges of migrating existing applications into the target architectures, and will work with the platform engineering and architecture teams to influence design decisions as a means of reducing complexity and risk. The candidate will also analyze third-party applications for integration into the enterprise, and will be responsible for designing and developing any adapters necessary for that integration to be successful. The candidate must have 10 years of experience in developing complex software programs, demonstrating the specific knowledge and skills in many of these areas:
Must be proficient/knowledgeable in the use of Linux and must understand the interactions between software being developed and the operating system, especially in the area of performance optimization;
Have demonstrated experience developing multi-threaded real-time applications;
Thorough understanding of IP and network communications;
Experience with some or all of the following languages: C (required), Java (required), Shell scripting, Ruby/Perl/Python.
Experience with development tools including the following: Netbeans and/or Eclipse IDEs, Make, Jenkins or other Continuous Integration system, Version Control tools such as SVN, CVS or other similar tools, Unit test frameworks (e.g. Junit, Cppunit), and Linux RPM development.
Basic understanding and working knowledge of virtualization technologies (KVM, VMWare) and interactions between virtualized environments and applications being developed and/or migrated from physical servers;
Basic understanding and experience with SQL, including the ability to work with MySQL databases, tables, views, and the SQL language.
Be self-motivated and capable of working independently, but also willing to collaborate and seek assistance when needed.
Minimum of a bachelor’s degree in computer science or related discipline, master’s degree preferred.
Required Clearance: TOP SECRET/SCI with polygraph
Desired: Skills and experience in the following areas would be beneficial: Working knowledge of Sonet/SDH/OTN transport; Performance analysis experience a plus; Experience with automated deployment management tools such as Puppet/Chef; Understands object-oriented relations and mappings; Capable of writing clear, concise, and unambiguous technical documentation and/or instructions.
AT&T is an Affirmative Action/Equal Opportunity Employer and we are committed to hiring a diverse and talented workforce. EOE/AA/M/F/D/V
At AT&T, we’re bringing it all together. We deliver advanced mobile services, next-generation TV, high-speed Internet and smart solutions for people and businesses. That’s why we stand alone as a fully integrated solution provider.... more