Sr Software Engineer

United States | California, Sunnyvale | Job ID: 11927

Job Description

Position at Ingram Micro Commerce (Shipwire)

Responsible for the development of software development, tools, and automation of process to support supply chain and fulfillment operations, including collection, analysis, routing, rating, transportation, and communication of materials, purchase orders, and returns.

Responsibilities:

  • Implement and help design features specified by product development, operations staff, and other engineers.
  • Design and conceive solutions to business and software problems.
  • Implement and test the solutions.
  • Collaborate with other software engineers, the site operations team, and product managers to ensure the solutions meet both acute customer needs as well as established product and software deployment standards.
  • Responsible for documenting the tools and process automations which they develop, and rigorously testing any software they develop or modify prior to moving changes into production.
  • Improve the quality, reliability, performance, and throughput of the platform application, as well as contributing to process development to improve efficiency of the development team.
  • Review product requirements and specifications based on business objectives and goals.
  • Consider impact and downstream consequences of introducing new code into systems.
  • Write code in various levels of languages towards agreed requirements and specifications.
  • Present new work and features in demo meetings.
  • Review other project code and suggesting improvements in code standards and functional gaps.
  • Interpret results using specialized tools such as Splunk and Papertrail to mine through large system and application logs.
  • Responsible for debugging and troubleshooting of issues related to application.
  • Propose and execute a plan of action to reduce or eliminate the recurrence of application issues through software changes or new development, tools development, and/or process automation.
  • Document endpoints and contracts to be used by various systems.
  • Create or update internal knowledge bases to document common misunderstandings and developer-facing explanations to help correct those misunderstandings.
  • Communicate with third-party developers idiomatically (in the context of whatever technologies and languages they are using to integrate) to help correct misunderstandings of proper usage of our APIs.
  • Provide testing plans and procedures for QA teams or other engineers to verify and validate APIs.
  • Connect frontend web application features with backend infrastructure and business logic.
  • Write and develop scripts to accelerate diagnosis of API issues. Evaluate and reference third-party APIs to integrate with platform.
  • Generate profiling reports based on performance of APIs and implementing and/or suggest plans to resolve slow running processes.
  • Create technical documentation and flow chart diagrams.
  • Adhere to standard coding practices and standards. Produce database schema models that are general and reusable.
  • Leverage already available code, both internal and external, with high judgement and discernment, to simplify code.
  • Document and communicate with others the purpose of a block of software. Work with Product Managers, Program Managers, QA Engineers, and Site Engineers to incrementally release software and launch new features. Plan and project time and scope of projects.
  • Utilizing client-side web development technologies such as HTML5, CSS3, JavaScript, and JavaScript libraries (such as jquery, YUI, ExtJS, backbone, handlebars, and require.js) to build rich user interfaces for internal support tools used by customer support, warehouse operations, and sales. Utilize client-side debugging tools such as FireBug. Utilize server-side technologies such as PHP, Zend Framework 1, Zend Framework 2, Java, and third-party libraries/toolkits to implement validation, business logic, and persistence layers needed for support tools.
  • Formulate SQL queries, DDL, and DML to implement or augment persistence needs for support tools. Utilize shell and other scripting languages.
Requirements:
  • Requires a Master's degree in Computer Science, Math, or related field plus three (3) years of technical experience. 
  • Alternatively, Petitioner will accept a Bachelor's degree in Computer Science, Math, or a related field plus seven (7) years of technical experience. 
  • Three years of experience with web application development. Knowledge of database-backed web application design and development. Experience analyzing issues with distributed web applications with complex data models. 
  • Experience developing software for complex systems with high traffic and commercial transaction volume. 
  • Knowledge of system architecture and database relationship diagrams. 
  • Experience developing web applications using HTML, JavaScript, and common JavaScript libraries such as jquery or YUI. 
  • Experience developing tools in the following scripting languages: Perl, Python, and PHP.
  • Experience with messaging formats including XML and JSON. 
  • Experience with SOAP, REST-based, and XML-RPC web services. Experience with distributed processing environments that make use of task schedulers such as UNIX cron and job queues such as Active MQ, Rabbit MQ, Gearman, or nsq.
  • Experience in one or more RDBMS such as MySQL, PostgreSQL, or Oracle. 
  • Experience with TCP/IP networking. Experience with at least one of the following: PHP, Java, and/or Go (golang). 
  • Knowledge of Unit Testing using tools like PhpUnit and continuous integration using Jenkins. 
  • Experience with issue-tracking tools such as JIRA and knowledge-sharing tools such as Confluence.

apply now

Share

Still looking?

Get updates about the latest job openings that match your skills.

sign up today