Senior Software Engineer
Qualifications: BS in Computer Science (preferred) or 6+ years of related field experience required.
Knowledge and demonstrated experience with leading large scale cross-disciplinary technology projects.
Knowledge of frameworks such as Spring. Knowledge of SOA and IOC.
Extensive database experience with SQL databases (Oracle, MySQL, Postgres, or MS SQL) required.
Experience with NoSQL databases (MongoDB, CouchDB, Riak, Redis, or others) preferred.
Development experience with data mapping (XSLT or others), caching strategies, and design patterns preferred.
Knowledge and demonstrated experience with state of the art software development process, tools, and practices.
Extensive knowledge of Unix / Linux systems, networking technologies, web development tools and techniques.
Familiarity with the problems of scale engineering for large integrated systems.
UNIX skills and concepts with in-depth knowledge of web applications, databases and caching.
Familiarity with scaling issues of synchronous and asynchronous processes and systems.
Familiarity with scaling issues of transactional and multithreaded processes and systems.
Knowledge of JMS and queueing technology.
Knowledge of Chef or other deployment systems.
Demonstrated ability to utilize network monitoring and analysis tools.
Strong troubleshooting/resolution skills.
Demonstrated ability to provide technical guidance / mentoring / coaching to the team.
Demonstrated ability to use the resources at your disposal to gather information, formulate solutions, circulate ideas to solicit peer input, determine the right solution and implement in a timely manner.
Demonstrated ability to provide technical project management for large-scale projects, interfacing with the overall project manager.
Excellent interpersonal, organizational and communication (written, verbal, and presentation) skills are a must.
Thorough, efficient and detail-oriented.
Demonstrated ability to mentor junior through senior engineers in the best practices of API architecture
Strong skills in critical thinking, problem solving and analysis.
Ability to adapt to a constantly changing environment with potentially conflicting priorities
Takes initiative and is self-directed
Ability to prioritize and execute tasks in a high-pressure environment, able to balance multiple projects and tasks and complete them successfully within timelines.
Demonstrated ability to lead both technical and non-technical discussions with both technical and non-technical end users.
Duties: The Senior Software Engineer is a senior technical member of the Architecture Technology team with primary responsibility for architecting, development, and integration of companion applications. DUTIES Responsibilities will include the following:
Work on strategic initiatives for our brands
Help set strategic technical direction and standards; focusing on the architecture and creation of platform capabilities for our companion applications
Implement new features, and coordinate with other teams
Deploy systems using Chef
Analyzing current architecture, propose improvements, and guide cross-department teams in implementing improvements
Troubleshoot issues and resolve the root causes