Software Development Engineer II
About The Role:
Software development is a critical component in achieving broader business goals, including increasing revenue through innovative software services and optimizing internal processes. As an SDE 2, you will be leveraging your advanced skills and experience by designing, building, maintaining, and improving software products and data-collection services from various sources. In this role, you will engage in sophisticated coding, testing, and debugging tasks, essential for innovating and maintaining a competitive edge in the market. You will lead the maintenance and enhancement of existing software systems, which involves resolving complex bugs, enhancing performance, and scaling software products to meet our evolving needs. As an SDE 2, you will mentor junior engineers and assist senior engineers in researching and implementing cutting-edge technologies.
Your role will be strategic, guiding the team in scaling systems to accommodate more data collection and ensuring system reliability and efficiency. As an experienced member of the software development team, you will have a significant impact on training and developing emerging talent. Your expertise will contribute to broadening the knowledge base within the team, a critical factor for the long-term success of our technology team.Essential Duties and Responsibilities
- Design and implement stable and performant data-collection technologies using Node.js, Java, Go or similar language.
- Execute full SDLC (design, build, document, unit/functional/load test, and deploy) of applications and infrastructure needed to scale our platform.
- Build and optimize efficient and reliable web scraping processes.
- Evaluate existing software to identify enhancement opportunities. This will include tackling latency, throughput challenges in data processing and request serving.
- Set up efficient operational processes including continuous deployment pipelines (CI/CD), testing automation, and appropriate monitoring and alerts.
- Actively participate in design discussions, team planning and code reviews. Provide insightful and constructive feedback for team and individual improvement.
- Troubleshoot software failures by reviewing code errors, logfiles, metrics, using debug functions, and other common troubleshooting techniques.
- Provide guidance to junior engineers about software development, operational excellence.
Qualifications and Education Requirements
- 3-5 years minimum of professional development experience in at least one modern programming language such as Typescript, C#, Java, or Python.
- Bachelor’s degree in computer science or related discipline.
- Knows a broad range of design approaches and when to use them (and when to not).
- Understands a broad range of data structures and algorithms, and which to use, or not.
- Understands the maintenance characteristics, runtime properties, and dependencies of a software (e.g., build dependencies). Knows how to be efficient with compute resources: hardware, database, memory/CPU, etc.
- Understands how to thoroughly test software services.
- Experience with AWS services: S3, SQS, SNS, ECS, AWS Lambda, Kinesis, ElasticCache
- Experience using Database technologies: Elastic Search / Mongo / Dynamo / MySQL / Postgres / Redshift.
- Experience working with Agile methodologies.
- Strong analytical and excellent problem-solving skills, with a propensity towards learning new tools and technologies.
- Comfortable writing SQL and hands-on knowledge of working with large datasets.
- Knowledge web scraping libraries and browser-automation technologies such as Selenium or Puppeteer.
- Experience with bot-detection technologies such as CloudFlare, Akamai, DataDome and PerimeterX.
. Preferred Qualifications and Education Requirements
- Master’s degree in Computer Science or a related technical field.
- Experience working in a startup, retail, digital advertising, or e-commerce environment.
- Experience building complex applications on distributed systems that have been successfully deployed for a large customer base.
- Experience with Big Data technologies (streaming and batch processing).
- Experience with LLMs and other machine learning models.
- End-to-end software development experience.
- History of delivering high quality production systems/services.
- Experience designing with an emphasis on scalability and sustainability.
- Strong written and verbal English communications skills
Benefits and Perks:
It’s important that each and every employee feels they are supported and can complete their life’s best work today and in the future. As part of that, we are committed to doing our part in addressing pay gaps and discrepancies by providing pay transparency for all of our roles. Actual salaries are just one component of the compensation package and may vary above or below the range based on job-related knowledge, skills, experience, geographical location, and performance. The pay range for this position located in Seattle is $150,000 - $170,000 per year. Other rewards may include annual bonuses, short- and long-term incentives, and other team-specific awards. In addition we provide a robust benefits and perks package that includes:
- Comprehensive benefits plan covering medical, dental, and vision
- Fertility benefits
- Company 401k plan plus matching
- Company paid Life Insurance
- 20 days of Paid Time Off annually
- 9 Paid company holidays
- 100% Paid Parental leave - 20 weeks for birthing mothers and 12 weeks for all other parents
- Summer Fridays early close at 2pm
- Fully stocked kitchen snacks with weekly fresh fruit