As a well rounded software engineer, you should definitely be the type that appreciates diversity in your day, and challenges outside of your comfort level! A typical day in the life of a PacketFabric senior software engineer might include these types of activities:
- Designing a deterministic lifecycle workflow for our next product offering.
- Writing core platform code for a new feature, and unit tests for functionality.
- Refactoring and improving existing code for performance and simplicity. For example, breaking a large method into smaller, more maintainable and easily tested methods.
- Building command line tools to help network engineers better manage network state.
- Researching additional ideas, you may have to improve the product/platform overall and sharing with the team.
- Interacting with customers and/or sales on a bug in the software, quickly resolving it, and coordinating across the team to push a fix.
- Working with backend engineers and discussing quirks in network protocols and network interconnection which translate rapid API and UI changes.
The right candidate will have an abundance of hard core programming skills, have solid instincts for API usability and design patterns. You are probably a full stack developer who naturally gravitates towards work on a product core. You know how to sacrifice algorithmic elegance for getting it done on deadline. More specifics include:
- Extensive experience with Python and PHP in large applications developed in a team environment.
- Expert unit tester.
- Experience in large scale distributed systems.
- Extensive SQL experience.
- Extensive experience with the HTTP protocol and developing and using RESTful APIs.
- A solid understanding of OO programming paradigms.
- Experience with a message queue system like RabbitMQ or Kafka.
- Experience using NoSQL data stores like Redis.
- Previous exposure to layer 2/3 networking protocols and concepts such as IPv4/6, VLANs, VPNs, BGP, etc.
- Be completely at home on any *nix command line and building your own tools.
- Very comfortable using Git in a team environment (i.e. pull-requests, branch management, rebasing).
- Experience working in an environment leveraging remote communication collaboration tools like Slack, Zoom etc.
- Never being afraid to venture boldly where none have gone before and develop code where there are no previous libraries to draw from.
- A huge plus for actually doing any router/switch configuration or infrastructure automation.
- Experience with Python-based web application frameworks like Flask, Django, or Sanic
- Experience with Vue.js, Angular and AngularJS.
- Any experience interacting with physical world equipment - industrial, medical, etc
- Experience creating large scale data visualizations of any type.