Principal Software Engineer, Cloud Services Platform, Autodesk Consumer Group
As a global leader in 3D design, engineering, and entertainment software, Autodesk helps people imagine, design, and create a better world. The Autodesk Consumer Group (ACG) is a new and exciting team that is passionate about providing powerful and fun design and visualization tools, platforms, websites and communities that unlock the creativity in everyone. Whether it’s a kid looking to have some fun, a seasoned pro, or just someone who wants to amp up their creativity, the ACG is all about helping them turn their ideas into reality and share them with the world.
We are seeking an experienced Principal Software Engineer to help this effort by providing strong software design and development expertise in the creation of the web services, which connect our products to the cloud. These services include diverse domains such as E-Commerce, Authentication and Authorization, Community and social, Storage and Search. As a Principal Software engineer, you will have a huge impact on how we design, build and deliver our tools and services to millions of people.
We look for engineers who love finding efficient, scalable and thoughtful solutions to a variety of technical and product challenges. You should be comfortable in a heterogeneous technology environment that is rapidly evolving and demands quickly mastering new technologies as we integrate these into the ACG platform. You should strive to write scalable, maintainable (production ready) code and you should enjoy pushing code every day.
Principal Duties and Responsibilities:
• Develop high-level designs and implement high scalability web services to support millions of monthly unique visitors.
• Collaborate with software architects, product designers, product managers, test engineers and others to implement high-quality web services.
• Provide mentoring to junior engineers.
• Provide thought leadership to the entire team in conjunction with other senior engineers.
• Thoroughly unit test, debug and solve defects in implemented software solutions.
• Understand the complete software development life cycle including design, implementation, QA and monitoring.
• Bachelor’s or Master’s degree in Computer Science, Mathematics, Engineering or equivalent work experience.
• 7+ years of strong programming skills, including Java/J2EE, PHP and/or Ruby.
• Hands on knowledge of developing RESTful web services and integrating the same with heterogeneous clients.
• Hands-on experience with J2EE.
• Hands-on experience with Amazon web services.
• Hands-on experience with Relational database technologies e.g. MySQL.
• Hands-on experience with PHP or Ruby on Rails.
• Hands-on experience with unit testing tools such as junit, Selenium, PHPUnit etc.
• Hands-on experience with Unix/Linux environments.
• Preferred experience with search technologies like Solr or Lucene.
• Preferred experience with document based databases like mongoDB or Cassandra.
• Preferred experience with object caching technologies such as memcached.
• Preferred experience or familiarity with Hadoop.
• Working knowledge of Web UI/AJAX frameworks like jQuery.
• Preferred experience with log aggregation and operational event monitoring technologies like Splunk or New Relic or Elasticsearch.
• Ability to convert complex software solutions into well-written technical design documents.
• Familiarity with the software development process, including specification, quality assurance and documentation.
• Working knowledge of UML and software design patterns.
• Comprehensive knowledge of software development methodologies such as Agile.
• Strong communication skills with the ability to converse fluently with multiple types of audiences ranging from managers, customers, partners and software development personnel
• Passion for developing robust software and writing maintainable code
• Keen interest in new technologies and their timely adoption
• Ability to learn large software systems quickly
• Ability to work in a heterogeneous environment consisting of multiple languages and technologies.
• Ability to work well in a team to deliver on team goals
• Flexibility under changing conditions and ability to multi-task between projects
• Self-directed and require minimal supervision
• Ability to communicate with local as well as remote and international teams