diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d1f2847 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,65 @@ +# Job Scraper + +Job board monitoring for privacy-focused and open-source companies. + +## Quick Reference + +| Item | Value | +|------|-------| +| URL | https://jobs.novanexus.ca | +| Port | 8085 | +| Containers | job-scraper-scheduled, job-dashboard | +| Data | ./data/jobs.db, ./data/dashboard.html | + +## Development Workflow + +After making code changes, rebuild and deploy: + +```bash +cd ~/job-scraper && sudo docker compose build && sudo docker compose up -d +``` + +## Common Commands + +```bash +# View status +sudo docker compose ps + +# View logs +sudo docker compose logs -f scraper-scheduled + +# Run scraper manually (one-time) +sudo docker compose run --rm scraper + +# Restart services +sudo docker compose restart + +# Rebuild without cache (if having issues) +sudo docker compose build --no-cache && sudo docker compose up -d +``` + +## Configuration + +- `config.yaml` - Companies to monitor, filters, notifications +- After config changes: `sudo docker compose restart scraper-scheduled` + +## Email Notifications + +Uses msmtp with system config (`~/.msmtprc`). The container mounts this file. + +To test email manually: +```bash +sudo docker compose run --rm scraper +``` + +## Files + +- `main.py` - CLI entry point, scheduling +- `db.py` - SQLite database operations +- `notify.py` - Console, msmtp, email, Slack notifications +- `dashboard.py` - HTML dashboard generator +- `scrapers/` - Platform-specific scrapers (greenhouse, lever, ashby) + +## Documentation + +Full docs: ~/maple-docs/docs/04-services/job-scraper.md diff --git a/Dockerfile b/Dockerfile index 9b9bdb3..d9d5d89 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,12 @@ FROM python:3.12-slim WORKDIR /app +# Install msmtp for email notifications +RUN apt-get update && apt-get install -y --no-install-recommends \ + msmtp \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + # Install dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt diff --git a/config.yaml b/config.yaml index 0f71664..e7a412a 100644 --- a/config.yaml +++ b/config.yaml @@ -154,7 +154,12 @@ notifications: # Console output is always enabled console: true - # Uncomment and configure for email notifications + # msmtp - uses system msmtp config (~/.msmtprc) + msmtp: + from_addr: admin@novanexus.ca + to_addr: me@bastiangruber.ca + + # Uncomment and configure for SMTP email notifications (alternative to msmtp) # email: # smtp_host: smtp.gmail.com # smtp_port: 587 diff --git a/dashboard.py b/dashboard.py index dc746a0..cbe77d2 100644 --- a/dashboard.py +++ b/dashboard.py @@ -133,6 +133,14 @@ def generate_dashboard(output_path: str = "data/dashboard.html"): db = Database() jobs = db.get_all_active_jobs() + # Get all monitored companies + all_company_names = db.get_all_companies() + + # Track total jobs per company (before location filtering) + total_per_company = {} + for company_name, job in jobs: + total_per_company[company_name] = total_per_company.get(company_name, 0) + 1 + # Group by company, filtering out irrelevant remote locations companies = {} filtered_count = 0 @@ -144,7 +152,15 @@ def generate_dashboard(output_path: str = "data/dashboard.html"): companies[company_name] = [] companies[company_name].append(job) + # Ensure all monitored companies are in the dict (even with 0 jobs) + for name in all_company_names: + if name not in companies: + companies[name] = [] + if name not in total_per_company: + total_per_company[name] = 0 + total_shown = sum(len(jobs) for jobs in companies.values()) + total_scraped = sum(total_per_company.values()) # Sort companies by name sorted_companies = sorted(companies.items()) @@ -334,6 +350,13 @@ def generate_dashboard(output_path: str = "data/dashboard.html"): .toc-links a:hover {{ text-decoration: underline; }} + .toc-links .empty {{ + color: var(--muted); + cursor: default; + }} + .toc-links .empty:hover {{ + text-decoration: none; + }} .filter-buttons {{ display: flex; flex-wrap: wrap; @@ -367,7 +390,7 @@ def generate_dashboard(output_path: str = "data/dashboard.html"):

$ job-board

Last updated: {datetime.now().strftime("%Y-%m-%d %H:%M:%S")} | - {total_shown} jobs across {len(companies)} companies + {total_shown}/{total_scraped} jobs (location filtered) | Monitoring {len(all_company_names)} companies
@@ -402,7 +425,12 @@ def generate_dashboard(output_path: str = "data/dashboard.html"): # Table of contents for company_name, company_jobs in sorted_companies: anchor = company_name.lower().replace(" ", "-") - html += f' {company_name} ({len(company_jobs)})\n' + filtered = len(company_jobs) + total = total_per_company.get(company_name, 0) + if filtered > 0: + html += f' {company_name} ({filtered}/{total})\n' + else: + html += f' {company_name} (0/{total})\n' html += """ @@ -410,8 +438,10 @@ def generate_dashboard(output_path: str = "data/dashboard.html"):
""" - # Job listings + # Job listings (only for companies with jobs) for company_name, company_jobs in sorted_companies: + if not company_jobs: + continue # Skip companies with no jobs after filtering anchor = company_name.lower().replace(" ", "-") html += f"""
diff --git a/data/dashboard.html b/data/dashboard.html index 8ab231f..eb6d900 100644 --- a/data/dashboard.html +++ b/data/dashboard.html @@ -144,6 +144,18 @@ background: #4a4a1a; color: #facc15; } + .tag-emea { + background: #1a3a4a; + color: #60a5fa; + } + .tag-americas { + background: #3a1a4a; + color: #c084fc; + } + .tag-worldwide { + background: #1a4a3a; + color: #34d399; + } .hidden { display: none; } @@ -171,6 +183,13 @@ .toc-links a:hover { text-decoration: underline; } + .toc-links .empty { + color: var(--muted); + cursor: default; + } + .toc-links .empty:hover { + text-decoration: none; + } .filter-buttons { display: flex; flex-wrap: wrap; @@ -203,8 +222,8 @@

$ job-board

- Last updated: 2026-01-20 12:51:15 | - 1180 jobs across 23 companies + Last updated: 2026-01-20 13:24:03 | + 421 jobs | Monitoring 28 companies
@@ -220,11 +239,14 @@ - - + + + + +
- 1180 jobs shown + 421 jobs shown
@@ -232,28 +254,33 @@
Jump to company:
@@ -265,89 +292,89 @@ 21 positions
-
+
Build Engineer remotecanada - Remote (United States | Canada) + Canada
-
+
Developer, Backendremotecanada - Remote (United States | Canada) + Canada
-
+
Developer, Enterprise Readyremotecanada - Remote (United States | Canada) + Canada
-
+
Director, Product Management - Platformsremotecanada - Remote (United States | Canada) + Canada
-
+
Director, Security Researchremotecanada - Remote (United States | Canada) + Canada
-
+
Engineering Manager, Product Engineeringremotecanada - Remote (United States | Canada) + Canada
-
+
Manager, Security Incident Responseremotecanada - Remote (United States | Canada) + Canada
-
+
Principal Developer, AI & Developer Teamremotecanada - Remote (United States | Canada) + Canada
-
+
Principal Product Marketing Manager, Developerremotecanada - Remote (United States | Canada) + Canada
-
+
Security Engineer, Corporate Securityremotecanada - Remote (United States | Canada) + Canada
-
+
Senior Developer, Data Securityremotecanada - Remote (United States | Canada) + Canada
-
+
Senior Director, Developer Platformremotecanada - Remote (United States | Canada) + Canada
-
+
Senior IT Engineerremotecanada - Remote (United States | Canada) + Canada
-
+
Senior Security Engineer, Application Securityremotecanada - Remote (United States | Canada) + Canada
-
+
Senior Security Engineer, Detection and Responseremotecanada - Remote (United States | Canada) + Canada
-
+
Senior Security Engineer, GRC Automationremotecanada - Remote (United States | Canada) + Canada
-
+
Senior Security Engineer, Threat Intelligenceremotecanada - Remote (United States | Canada) + Canada
-
+
Solutions Engineer, Commercialremotecanada - Remote (United States | Canada) + Canada
-
+
Staff Developer, Authentication Enablementremotecanada - Remote (United States | Canada) + Canada
-
+
Staff Developer, Enterprise Readyremotecanada - Remote (United States | Canada) + Canada
-
+
Staff IT Engineer, Enterprise Toolsremotecanada - Remote (United States | Canada) + Canada
@@ -355,34 +382,30 @@
Automattic - 7 positions + 6 positions
-
- Applied AI Engineer (New York) - New York City -
-
+ -
+ -
+ -
+ -
+ -
+
Staff Test Engineerremote Remote
@@ -392,636 +415,572 @@
Canonical - 157 positions + 141 positions
-
- Alliances Field Engineer - Home based - Worldwide +
+ Alliances Field Engineerworldwide + Worldwide
-
- Associate Linux Support Engineer - Home based - Worldwide +
+ Associate Linux Support Engineerworldwide + Worldwide
-
- C++/Rust Graphics and Windowing System Software Engineer - Mir - Home Based - APAC; Home based - EMEA + -
- C, Golang Software Engineer working on dqlite, a Raft extension for SQLite - Home based - EMEA + -
- Cloud Engineering Manager - Home based - Worldwide +
+ Cloud Engineering Managerworldwide + Worldwide
-
- Cloud Field Engineer - Home based - Worldwide +
+ Cloud Field Engineerworldwide + Worldwide
-
- Cloud Field Engineering Manager - Home based - Worldwide +
+ Cloud Field Engineering Managerworldwide + Worldwide
-
- Cloud Support Engineer - Home based - Worldwide +
+ Cloud Support Engineerworldwide + Worldwide
-
- Cloud Support Engineer, Japan - Home Based - APAC + -
- Community Engineer (multiple roles and seniority levels) - Home based - Worldwide + -
- Containerization & Virtualisation Engineer - Home based - Worldwide + -
- Developer Relations Engineer - Home Based - APAC; Home based - EMEA + -
- Distributed Systems Testing Software Engineer, Python / Go - Home based - Worldwide + -
- Embedded & Desktop Linux Systems Engineer - Optimisation - Home based - Worldwide + -
- Embedded Linux Field Engineer (Mandarin speaking) - Home Based - APAC + -
- Embedded Linux Field Engineer for Devices/IoT - Home based - Worldwide + -
- Embedded Linux Field Engineering Manager (Americas only) - Home based - Worldwide +
+ Engineering Managerworldwide + Worldwide
-
- Embedded Linux Senior Software Engineer - Optimisation - Home based - Worldwide +
+ Engineering Manager - App Storesworldwide + Worldwide
-
- Engineering Director, Devices Software Engineering - Office Based - Taipei, Taiwan +
+ Engineering Manager - AppArmorworldwide + Worldwide
-
- Engineering Manager - Home based - Worldwide + -
- Engineering Manager - App Stores - Home based - Worldwide +
+ Engineering Manager - Data Platformworldwide + Worldwide
-
- Engineering Manager - AppArmor - Home based - Worldwide + -
- Engineering Manager - Build and Release Infrastructure - Home based - EMEA + -
- Engineering Manager - Data Platform - Home based - Worldwide + -
- Engineering Manager - MLOps & Analytics - Home based - Worldwide + -
- Engineering Manager - Public Cloud, Python, Golang - Home Based - Americas; Home based - EMEA + -
- Engineering Manager - Python and K8s - Home Based - APAC; Home based - EMEA +
+ Engineering Manager - Ubuntu Coreemeaamericas + Americas
-
- Engineering Manager - Security Standards and Hardening - Home based - Worldwide +
+ Engineering Manager - Ubuntu Securityworldwide + Worldwide
-
- Engineering Manager - Solutions Engineering - Home Based - Americas; Home based - EMEA + -
- Engineering Manager - Ubuntu Core - Home Based - Americas; Home based - EMEA + -
- Engineering Manager - Ubuntu Hardware Certification Quality and Test Engineering - Office Based - Taipei, Taiwan + -
- Engineering Manager - Ubuntu Security - Home based - Worldwide +
+ Engineering Manager, Managed Servicesworldwide + Worldwide
-
- Engineering Manager - Web - Home based - EMEA + -
- Engineering Manager for IAM (Identity and Access Management) - Home Based - Americas; Home based - EMEA + -
- Engineering Manager, Commercial Systems - Home based - EMEA +
+ Golang Engineerworldwide + Worldwide
-
- Engineering Manager, Managed Services - Home based - Worldwide + -
- Engineering Manager- Ceph & Distributed Storage - Home Based - Americas; Home based - EMEA + -
- GitOps Engineering Manager - Home Based - APAC; Home based - EMEA + -
- Go (Golang) Software Engineer, Developer Tooling and Containers - Home Based - APAC +
+ HPC Software Engineeremeaamericas + Americas
-
- Golang Engineer - Home based - Worldwide +
+ Head of Security Operationsworldwide + Worldwide
-
- Golang Engineering Manager, Commercial Systems - Home based - EMEA +
+ IoT Data Engineeremea + EMEA
-
- Golang System Software Engineer - Containers / Virtualisation - Home Based - Americas; Home based - EMEA +
+ Juju Software Engineer (Go)worldwide + Worldwide
-
- Graduate Software Engineer, Open Source and Linux, Canonical Ubuntu - Home based - Worldwide +
+ Junior Cloud Field Engineerworldwide + Worldwide
-
- HPC Software Engineer - Home Based - Americas; Home based - EMEA +
+ Junior Data Engineeremea + EMEA
-
- Head of Security Operations - Home based - Worldwide +
+ Junior Linux Kernel Engineer - Ubuntuworldwide + Worldwide
-
- IoT Data Engineer - Home Based - APAC; Home based - EMEA + -
- IoT Field Engineer - China & Region - Home Based - Shenzhen, China +
+ Junior Ubuntu Software Engineerworldwide + Worldwide
-
- Juju Software Engineer (Go) - Home based - Worldwide + -
- Junior Cloud Field Engineer - Home based - Worldwide + -
- Junior Data Engineer - Home based - EMEA + -
- Junior Linux Kernel Engineer - Ubuntu - Home based - Worldwide +
+ Lead Linux Kernel Engineer - Ubuntuworldwide + Worldwide
-
- Junior Software Developer - Observability - Home based - EMEA + -
- Junior Ubuntu Software Engineer - Home based - Worldwide + -
- Kernel Build Automation Engineer - Ubuntu Linux - Home based - EMEA + -
- Lead Data Governance Engineer - Home based - EMEA +
+ Linux Devices Software Engineerworldwide + Worldwide
-
- Lead Golang Software Engineer, Commercial Systems - Home based - EMEA + -
- Lead Linux Kernel Engineer - Ubuntu - Home based - Worldwide +
+ Linux Kernel Engineerworldwide + Worldwide
-
- Lead Python Software Engineer, Commercial Systems - Home based - EMEA + -
- Linux Cryptography and Security Engineer - Home based - Worldwide + -
- Linux Desktop & Devices Support Engineer - Home based - Worldwide +
+ Linux devices software engineer - snapdemeaamericas + Americas
-
- Linux Devices Software Engineer - Home based - Worldwide; Office Based - Taipei, Taiwan -
-
- Linux Enablement - Software Engineering Manager - Office Based - Taipei, Taiwan -
-
- Linux Enablement - Software Engineering Manager - Office Based - Beijing, China -
- -
- Linux Kernel Engineer - Home based - Worldwide -
- -
- Linux Software Engineer - Ubuntu for Next-Gen Silicon (multiple roles and seniority levels) - Home Based - Americas; Home Based - APAC; Home based - EMEA -
-
- Linux devices software engineer - snapd - Home Based - Americas; Home based - EMEA -
-
+
MAAS Data Center Infrastructure Engineer (Toronto area)canada - Office Based - Toronto, Canada + Canada
-
+
MAAS Systems Engineer - Python (Toronto area)canada - Office Based - Toronto, Canada + Canada
-
- MLOps Field Engineer - Home based - Worldwide +
+ MLOps Field Engineerworldwide + Worldwide
-
- Microservices Engineer - Home based - Worldwide +
+ Microservices Engineerworldwide + Worldwide
-
- Observability Engineering Manager - Home Based - Americas; Home based - EMEA +
+ Observability Engineering Manageremeaamericas + Americas
-
- Open Source Networking Software Engineer - ToR Switch / SmartNIC / DPU - Home Based - Americas; Home Based - APAC; Office Based - Beijing, China; Office Based - Taipei, Taiwan + -
- OpenStack Engineering Manager - Home based - Worldwide +
+ OpenStack Engineering Managerworldwide + Worldwide
-
- PC Platforms Kernel Engineer - Ubuntu Linux - Office Based - Beijing, China; Office Based - Taipei, Taiwan +
+ Performance Engineer - Open Sourceworldwide + Worldwide
-
- Performance Engineer - Open Source - Home based - Worldwide + -
- Product Manager - Security - Home based - EMEA +
+ Python Engineerworldwide + Worldwide
-
- Python Engineer - Home based - Worldwide + -
- Python Engineer - Data Center Hardware Integration (Taipei) - Office Based - Taipei, Taiwan + -
- Python Engineering Manager, Commercial Systems - Home based - EMEA + -
- Python Software Engineer - Ubuntu Hardware Certification Team - Home based - EMEA + -
- Python and Kubernetes Software Engineer - Data, Workflows, AI/ML & Analytics - Home based - Worldwide + -
- Revenue Accounting Manager - Software Industry, IFRS 15, NetSuite - Home based - EMEA + -
- Rust Engineering Lead - Linux and Open Source - Home based - Worldwide +
+ Security Risk Management Specialistworldwide + Worldwide
-
- Salesforce/NetSuite Engineering Manager, Commercial Systems - Home based - EMEA +
+ Security Software Engineerworldwide + Worldwide
-
- Security Risk Management Specialist - Home based - Worldwide + -
- Security Software Engineer - Home based - Worldwide +
+ Senior Growth Engineeremea + EMEA
-
- Senior Design Manager (Infrastructure) - Home based - EMEA +
+ Senior Juju Software Engineer (Go)worldwide + Worldwide
-
- Senior Growth Engineer - Home based - EMEA +
+ Senior Security Operations Engineerworldwide + Worldwide
-
- Senior Juju Software Engineer (Go) - Home based - Worldwide + -
- Senior Security Operations Engineer - Home based - Worldwide +
+ Senior Site Reliability Engineerworldwide + Worldwide
-
- Senior Site Reliability / Gitops Engineer - Home based - Worldwide + -
- Senior Site Reliability Engineer - Home based - Worldwide +
+ Senior Software Engineer - MAASemeaamericas + Americas
-
- Senior Software Engineer (Backend) - Home based - EMEA + -
- Senior Software Engineer - MAAS - Home Based - Americas; Home based - EMEA + -
- Senior Software Engineer - Python/MongoDB - Home based - EMEA +
+ Senior Web Engineeremea + EMEA
-
- Senior Ubuntu Embedded IoT System Engineer - Home based - EMEA +
+ Senior/Staff/Principal Engineerworldwide + Worldwide
-
- Senior Ubuntu Embedded IoT System Engineer - Office Based - Taipei, Taiwan +
+ Site Reliability / Gitops Engineerworldwide + Worldwide
-
- Senior Web Engineer - Home based - EMEA +
+ Site Reliability Engineerworldwide + Worldwide
-
- Senior/Staff/Principal Engineer - Home based - Worldwide + -
- Site Reliability / Gitops Engineer - Home based - Worldwide + -
- Site Reliability Engineer - Home based - Worldwide +
+ Software Developer (Backend SaaS)americas + Americas
-
- Site Reliability Engineering Manager - Home Based - APAC; Home based - EMEA + -
- Software Architect - Containers / Virtualisation - Home Based - Americas; Home based - EMEA +
+ Software Engineer - App Storesworldwide + Worldwide
-
- Software Developer (Backend SaaS) - Home Based - Americas +
+ Software Engineer - Cloud Imagesamericas + Americas
-
- Software Engineer (Python/Linux/Packaging) - Home Based - Americas; Home based - EMEA + -
- Software Engineer - App Stores - Home based - Worldwide + -
- Software Engineer - Cloud Images - Home Based - Americas + -
- Software Engineer - Data Infrastructure - Home based - EMEA + -
- Software Engineer - Data Infrastructure - Kafka - Home based - EMEA +
+ Software Engineer - L3 Supportworldwide + Worldwide
-
- Software Engineer - Data Infrastructure - OpenSearch/ElasticSearch - Home based - EMEA +
+ Software Engineer - OpenStackemeaamericas + Americas
-
- Software Engineer - Industrial IoT - Home based - EMEA + -
- Software Engineer - L3 Support - Home based - Worldwide + -
- Software Engineer - OpenStack - Home Based - Americas; Home based - EMEA +
+ Software Engineer - Python and K8sworldwide + Worldwide
-
- Software Engineer - Python - Cloud - graduate level - Home Based - Americas + -
- Software Engineer - Python - Container Images - Home Based - Americas; Home Based - APAC; Home based - EMEA + -
- Software Engineer - Python and K8s - Home based - Worldwide + -
- Software Engineer - Python/Golang - Kubernetes - Home Based - Americas; Home based - EMEA + -
- Software Engineer - Solutions Engineering - Home based - Worldwide + -
- Software Engineer - Ubuntu Server Certification - Home Based - Americas + -
- Software Engineer, Ceph & Distributed Storage - Home Based - Americas; Home based - EMEA +
+ Software Engineering Directorworldwide + Worldwide
-
- Software Engineer, Cloud - Sustaining Engineering - Home based - Worldwide + -
- Software Engineer, Sustaining Engineering - Home based - Worldwide + -
- Software Engineer, Ubuntu Commercial Computers - Office Based - Beijing, China + -
- Software Engineering Director - Home based - Worldwide + -
- Software Engineering Manager (Backend SaaS) - Home Based - Americas +
+ Software Maintenance Engineerworldwide + Worldwide
-
- Software Engineering Manager - Container and Virtualisation Infrastructure - Home Based - Americas; Home based - EMEA + -
- Software Engineering Manager - Sustaining Engineering - Home Based - Americas +
+ Software Support Engineerworldwide + Worldwide
-
- Software Engineering Manager - Ubuntu Linux Kernel - Home based - Worldwide +
+ Staff Engineer, Development Lifecycleemeaamericas + Americas
-
- Software Maintenance Engineer - Home based - Worldwide +
+ Staff Security Operations Engineerworldwide + Worldwide
-
- Software Platform Engineering Manager - Ubuntu for Next-Gen Silicon - Home based - Worldwide + -
- Software Support Engineer - Home based - Worldwide +
+ Support Engineering Managerworldwide + Worldwide
-
- Staff Engineer, Development Lifecycle - Home Based - Americas; Home based - EMEA +
+ Sustaining Operations Engineerworldwide + Worldwide
-
- Staff Security Operations Engineer - Home based - Worldwide + -
- Staff Software Engineer for Identity Management (Go/Golang) - Home Based - Americas; Home based - EMEA + -
- Support Engineering Manager - Home based - Worldwide + -
- Sustaining Operations Engineer - Home based - Worldwide + -
- Technical Product Marketing Manager - Cybersecurity - Home based - EMEA + -
- Telco Cloud Engineer (5G, OpenRan, OpenStack, Python) - Americas - Home Based - Americas +
+ Ubuntu Engineering Leadworldwide + Worldwide
-
- UX Designer - Developer experience - Home based - EMEA +
+ Ubuntu Engineering Managerworldwide + Worldwide
-
- UX Designer - Infrastructure - Home based - EMEA + -
- Ubuntu Core Software Engineer - Home based - EMEA + -
- Ubuntu Enablement - Software Engineering Manager - Office Based - Taipei, Taiwan +
+ Ubuntu Sales Engineer (Entry-Level)worldwide + Worldwide
-
- Ubuntu Enablement Engineer - Office Based - Beijing, China +
+ Ubuntu Security Engineerworldwide + Worldwide
-
- Ubuntu Enablement Engineer - Office Based - Taipei, Taiwan +
+ Ubuntu Software Engineerworldwide + Worldwide
-
- Ubuntu Engineering Lead - Home based - Worldwide + -
- Ubuntu Engineering Manager - Home based - Worldwide +
+ Web Developeremea + EMEA
- - - -
- Ubuntu Sales Engineer (Entry-Level) - Home based - Worldwide -
-
- Ubuntu Security Engineer - Home based - Worldwide -
-
- Ubuntu Software Engineer - Home based - Worldwide -
-
- Usability Engineer - User Science - Home based - EMEA -
-
- Web Developer - Home based - EMEA -
-
@@ -1029,1598 +988,96 @@
ClickHouse - 106 positions + 22 positions
- -
+
Cloud Software Engineer - Observability Platformremotecanada - Canada (remote) + Canada
-
- Cloud Software Engineer - Observability Platformremote - United States (remote) +
+ Core Software Engineer (C++) - Remoteremotegermany + Germany
-
- Core Software Engineer (C++) - Remoteremote - Netherlands (remote) + -
- Core Software Engineer (C++) - Remoteremote - India (remote) + -
- Core Software Engineer (C++) - Remoteremote - United States (remote) + -
- Core Software Engineer (C++) - Remoteremoteberlin - Germany (remote) + -
- Core Software Engineer (C++) - Remoteremote - United Kingdom (remote) -
-
- Corporate Security Engineerremote - United Kingdom (remote) -
-
- Corporate Security Engineerremote - United States (remote) -
-
- Corporate Security Engineerremote - Netherlands (remote) -
-
- Database Reliability Engineer - Core Teamremote - Netherlands (remote) -
-
- Database Reliability Engineer - Core Teamremoteberlin - Germany (remote) -
-
- Database Reliability Engineer - Core Teamremote - United Kingdom (remote) -
-
- Database Reliability Engineer - Core Teamremote - Australia (remote) -
-
- Engineering Manager - Chinaremote - Mainland China (remote) -
-
- Engineering Manager - Database Integrationsremote - Netherlands (remote) -
-
- Engineering Manager - Database Integrationsremote - United Kingdom (remote) -
-
- Engineering Manager - Database Integrationsremoteberlin - Germany (remote) -
-
- Engineering Manager - Database Integrationsremote - United States (remote) -
-
- Full Stack Software Engineer - Billing Teamremote - United States (remote) -
-
- Full Stack Software Engineer - Billing Teamremote - Netherlands (remote) -
-
- Full Stack Software Engineer - Billing Teamremoteberlin - Germany (remote) -
- -
- Full Stack Software Engineer - Cloud Infrastructureremote - United States (remote) -
-
- Full Stack Software Engineer - Control Planeremote - Netherlands (remote) -
-
- Full Stack Software Engineer - Control Planeremote - United States (remote) -
-
- Full Stack Software Engineer - Control Planeremoteberlin - Germany (remote) -
-
- Governance, Risk, and Compliance Engineerremote - United States (remote) -
-
+
Incident Response Security Engineerremotecanada - Canada (remote) + Canada
-
- Incident Response Security Engineerremote - Netherlands (remote) -
-
- Incident Response Security Engineerremote - United Kingdom (remote) -
-
- Incident Response Security Engineerremote - United States (remote) -
-
- Product Marketing Engineer - GEO, AEO and SEOremote - United States (remote) -
-
- Product Marketing Engineer - GEO, AEO and SEOremote - United Kingdom (Remote) -
-
+
Product Security Engineerremotecanada - Canada (remote) + Canada
-
- Product Security Engineerremote - Netherlands (remote) +
+ QA Engineer - Core Database (remote)remotegermany + Germany
-
- Product Security Engineerremote - United States (remote) -
-
- QA Engineer - Core Database (remote)remote - Spain (remote) -
-
- QA Engineer - Core Database (remote)remote - India (remote) -
-
- QA Engineer - Core Database (remote)remoteberlin - Germany (remote) -
-
- QA Engineer - Core Database (remote)remote - United States (remote) -
-
- QA Engineer - Core Database (remote)remote - United Kingdom (remote) -
-
- QA Engineer - Core Database (remote)remote - Netherlands (remote) -
-
- Senior Backend Engineer - Data Ingestion (ClickPipes)remote - United Kingdom (remote) -
-
+
Senior Backend Engineer - Data Ingestion (ClickPipes)remotecanada - Canada (remote) + Canada
- - - -
- Senior Cloud Engineer remote - United States (remote) -
-
+
Senior Cloud Engineer - Product Metricsremotecanada - Canada (remote) + Canada
-
- Senior Cloud Engineer - Product Metricsremote - United States (remote) + -
- Senior Consulting Engineer - AMERremote - United States (Remote) -
-
- Senior Consulting Engineer - APJremote - Australia (Remote) -
-
- Senior Consulting Engineer - APJremote - Singapore (Remote) -
-
- Senior Consulting Engineer - EMEAremote - United Kingdom (Remote) -
-
- Senior Consulting Engineer - EMEAremote - France (Remote) -
-
- Senior Consulting Engineer - EMEAremote - Netherlands (Remote) -
-
- Senior Consulting Engineer - EMEAremote - EMEA (Remote) -
-
+
Senior Full Stack Engineer - HyperDXremotecanada - Canada (remote) + Canada
-
- Senior Full Stack Engineer - HyperDXremote - Netherlands (remote) +
+ Senior Full Stack Engineer - HyperDXremotegermany + Germany
-
- Senior Full Stack Engineer - HyperDXremote - United States (remote) + -
- Senior Full Stack Engineer - HyperDXremoteberlin - Germany (remote) + -
- Senior Full Stack Engineer - HyperDXremote - United Kingdom (remote) -
-
- Senior Infrastructure Engineer - Postgresremote - India (remote) -
-
- Senior Infrastructure Engineer - Postgresremote - United States (remote) -
-
- Senior Product Manager, Securityremote - United States (Remote) -
-
- Senior Product Manager, Securityremote - United Kingdom (remote) -
-
- Senior Product Manager, Securityremote - Netherlands (remote) -
-
- Senior Software Engineer (Infrastructure) - HyperDXremote - United Kingdom (remote) -
-
- Senior Software Engineer (Infrastructure) - HyperDXremote - United States (remote) -
-
- Senior Software Engineer (Infrastructure) - HyperDXremote - Netherlands (remote) -
-
- Senior Software Engineer (Infrastructure) - HyperDXremoteberlin - Germany (remote) -
-
- Senior Software Engineer (TypeScript) - AI/MLremote - United States (remote) -
-
- Senior Software Engineer (TypeScript) - AI/MLremote - The Netherlands (remote) -
- - - -
- Senior Software Engineer - Cloud Infrastructureremote - Charlotte, NC (Remote) -
-
- Senior Software Engineer - Cloud Infrastructureremote - Singapore (remote) -
-
- Senior Software Engineer - Cloud Infrastructureremote - Seattle, WA (Remote) -
-
- Senior Software Engineer - Cloud Infrastructureremote - Australia (remote) -
- -
- Senior Software Engineer - Cloud Infrastructureremote - Amsterdam(Remote) -
- -
+
Senior Software Engineer - Data Integration & JVM Ecosystemremotecanada - Canada (Remote) + Canada
-
- Senior Software Engineer - Data Integration & JVM Ecosystemremoteberlin - Germany (Remote) + - - - -
- Senior Software Engineer - Postgresremote - India (remote) -
-
+
Senior Software Engineer - Postgresremotecanada - Canada (remote) + Canada
-
- Senior Software Engineer - Postgresremote - United States (remote) + -
- Senior UX Engineer - Postgresremote - India (remote) + -
- Senior UX Engineer - Postgresremote - United States (remote) -
-
- Software Engineer (C++) - chDBremote - Mainland China (remote) -
-
- Technical Customer Support Engineer - AMER (EST)remote - United States (Remote) -
-
- Technical Customer Support Engineer - APJremote - Australia (Remote) -
-
- Technical Customer Support Engineer - APJremote - Singapore (Remote) -
-
- Technical Customer Support Engineer - Dutch speakingremote - Netherlands (Remote) -
-
- Technical Customer Support Engineer - Dutch speakingremote - United Kingdom (Remote) -
-
- Technical Customer Support Engineer - Dutch speakingremoteberlin - Germany (Remote) -
-
- Technical Customer Support Engineer - EMEAremote - EMEA (Remote) -
-
- Technical Customer Support Engineer - EMEAremote - United Kingdom (Remote) -
-
- Technical Customer Support Engineer - EMEAremote - France (Remote) -
-
- Technical Customer Support Engineer - German speakingremoteberlin - Germany (Remote) -
-
-
- -
-
- Cloudflare - 285 positions -
-
- - - -
- Application Security Engineer - Distributed; Hybrid -
- - - - - - - - - - - - - -
- Design Engineer, Radar - Hybrid -
- - - -
- Developer Solutions Strategist - Distributed -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Hardware Systems Engineer - In-Office -
-
- IAM Security Engineer - Hybrid; In-Office -
- - - - - - - - - -
- Network Deployment Engineer - In-Office -
- - -
- Partner Solutions Engineer, UK&I - Hybrid; In-Office -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Senior Design Engineer - Hybrid -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Senior Software Engineer - Backend - Hybrid; In-Office -
- - - - - - - - - - - - - - - - -
- Senior Solutions Engineer - Distributed -
-
- Senior Solutions Engineer - Distributed -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Solutions Engineer - Distributed -
-
- Solutions Engineer - Distributed -
- - - - - - -
- Solutions Engineer, Zero Trust - Distributed -
- - - - - - -
- Systems Engineer - Hybrid -
- - - - - - -
- Systems Engineer, Data - Hybrid -
-
- Systems Engineer, Edge - In-Office -
- -
- Systems Engineer, FL - Hybrid -
-
- Systems Engineer, Frontend - In-Office -
-
- Systems Engineer, Fullstack - In-Office -
- - - - - -
- Technical Support Engineer - Hybrid; In-Office -
- - - - - -
- VP, Developer Adoption - Hybrid -
- - -
-
- -
-
- CockroachLabs - 2 positions -
-
-
- Member of Technical Staff (SRE) - New York, NY -
-
- Sales Engineer - London, UK +
@@ -2628,725 +1085,16 @@
Datadog - 145 positions + 2 positions
- - -
- Area Vice President, Enterprise Security Sales - New York, New York, USA; San Francisco, California, USA -
-
- Commercial & Mid Market Sales Engineer - Sydney, Australia -
- - -
- Commercial Sales Engineer (East) - Boston, Massachusetts, USA -
-
- Commercial Sales Engineer (German-speaking) - Amsterdam, The Netherlands; Dublin, Ireland -
-
- Commercial Sales Engineer (Portuguese-speaking) - Amsterdam, The Netherlands; Dublin, Ireland -
-
- Commercial Sales Engineer - NYC - New York, New York, USA -
-
- Container Runtime Engineer - Boston, Massachusetts, USA; New York, New York, USA -
-
- Datadog for Startups Engineering Lead - San Francisco, California, USA -
- -
- Engineering Manager I - Cyber Threat Intelligence - Boston, Massachusetts, USA; Denver, Colorado, USA; New York, New York, USA -
- -
- Enterprise Sales Engineer - Osaka, Japan -
-
- Enterprise Sales Engineerremote - Texas, USA, Remote -
-
- Enterprise Sales Engineer - Delhi, India -
-
- Enterprise Sales Engineer - Osaka, Japan -
- - -
- Enterprise Sales Engineer (Malaysia Market) - Singapore, Singapore -
-
- Enterprise Sales Engineer - Brazil - Sao Paulo, Brazil -
-
- Enterprise Sales Engineer - Nordics - Copenhagen, Denmark; Stockholm, Sweden -
-
- Enterprise Sales Engineer - South Africaremote - South Africa, Remote -
-
- Enterprise Sales Engineer - Spainremote - Spain, Remote -
-
- Enterprise Sales Engineer - UKremote - United Kingdom, Remote -
-
- Enterprise Security Sales Specialist - Chicago, Illinois, USA; San Francisco, California, USA -
-
- Federal Support Engineer 2 - Denver - Denver, Colorado, USA -
-
- Federal Support Engineer 3 - Denver - Denver, Colorado, USA -
-
- Global Safety & Security Senior Manager - NYC - New York, New York, USA -
-
- Information Security Analyst II - New York, New York, USA -
-
- Manager 1, Technical Escalations Engineering - US-East - Boston, Massachusetts, USA; New York, New York, USA -
- - -
- Manager 2, Premier Support Engineering - Boston - Boston, Massachusetts, USA -
-
- Manager 2, Premier Support Engineering - Amsterdam - Amsterdam, The Netherlands -
- -
+
Manager I, Developer Advocacyremotecanada - Canada, Remote + Canada
- -
- Manager I, Engineering - APM SDK Capabilities - New York, New York, USA -
- -
- Manager I, Engineering - APM SDK Capabilities - Madrid, Spain; Paris, France -
- - - - -
- Manager I, Engineering - Container Autoscaling - Paris, France; Sophia Antipolis, France -
- - -
- Manager I, Engineering - Language Platform - New York, New York, USA -
-
- Manager I, Engineering - Logs Query - Madrid, Spain; Paris, France -
- -
- Manager II, Engineering - Agent Customer Experience - Bordeaux, France; Lyon, France; Montpellier, France; Nantes, France; Paris, France; Sophia Antipolis, France -
- -
- Manager, Commercial Sales Engineering (AMER - East) - Boston, Massachusetts, USA; New York, New York, USA -
- - -
- Manager, People Analytics Data Platform - Boston, Massachusetts, USA; New York, New York, USA -
- -
- Mid-Market Sales Engineer (Spanish-speaking) - Amsterdam, The Netherlands; Dublin, Ireland -
-
- Premier Support Engineer 2 - San Francisco, California, USA -
-
- Premier Support Engineer 2 - New York - New York, New York, USA -
-
- Premier Support Engineer 3 - NYC - New York, New York, USA -
-
- Product Manager II - Software Delivery Suite - New York, New York, USA -
-
- Regional Manager, Sales Engineering - Jakarta, Indonesia -
- - -
- Sales Engineer (Customer Success - Spanish Speaking) - Boston, Massachusetts, USA; New York, New York, USA -
- -
- Sales Engineer (Customer Success) - Boston - Boston, Massachusetts, USA -
-
- Sales Engineer (Customer Success) - Denver - Denver, Colorado, USA -
-
- Sales Engineer - Majors (UK)remote - United Kingdom, Remote -
-
- Security Director, Sales Engineering - Denver, Colorado, USA; New York, New York, USA; San Francisco, California, USA; Seattle, Washington, USA -
-
- Security Engineer II, Risk Engineering - New York, New York, USA -
-
- Senior AI Engineer - APM Experiences - New York, New York, USA -
- - - - -
- Senior Engineer - Linux - Tel Aviv, Israel -
-
- Senior Product Marketing Manager (AI Security) - New York, New York, USA; San Francisco, California, USA -
-
- Senior Sales Engineerremote - Chicago, Illinois, USA; Minnesota, USA, Remote -
-
- Senior Sales Engineer - Majors Northeastremote - New Jersey, USA, Remote -
-
- Senior Security Engineer - Threat Detection Engineering - Boston, Massachusetts, USA; Denver, Colorado, USA; New York, New York, USA -
-
- Senior Security Engineer, Data Security - New York, New York, USA -
- -
- Senior Security Researcher - GenAI - Madrid, Spain; Paris, France -
-
- Senior Security Researcher - GenAI - Lisbon, Portugal -
-
- Senior Software Engineer - Bordeaux, France; Lyon, France; Madrid, Spain; Nantes, France; Paris, France; Sophia Antipolis, France -
-
- Senior Software Engineer - Boston, Massachusetts, USA; New York, New York, USA -
-
- Senior Software Engineer (Frontend) - Security Platform - Madrid, Spain; Paris, France -
-
- Senior Software Engineer (MLOps) – Annotation & Evaluation - Paris, France; Sophia Antipolis, France -
-
- Senior Software Engineer (MLOps) – Serving - Paris, France; Sophia Antipolis, France -
-
- Senior Software Engineer (MLOps) – Training & Registry - Paris, France; Sophia Antipolis, France -
- - -
- Senior Software Engineer - AI Platform - Paris, France; Sophia Antipolis, France -
-
- Senior Software Engineer - Backend & Scalability - Madrid, Spain; Paris, France; Tel Aviv, Israel -
-
- Senior Software Engineer - Cloud SIEM - Lisbon, Portugal -
-
- Senior Software Engineer - Cloud Security Platform - Bordeaux, France; Lyon, France; Nantes, France; Paris, France; Sophia Antipolis, France -
-
- Senior Software Engineer - Data Science - Bordeaux, France; Lyon, France; Madrid, Spain; Nantes, France; Paris, France; Sophia Antipolis, France -
-
- Senior Software Engineer - Distributed Systems - Boston, Massachusetts, USA; New York, New York, USA -
-
- Senior Software Engineer - Distributed Systems - Bordeaux, France; Lyon, France; Madrid, Spain; Nantes, France; Paris, France; Sophia Antipolis, France; Tel Aviv, Israel -
-
- Senior Software Engineer - Frontend - Madrid, Spain; Paris, France -
-
- Senior Software Engineer - Frontend - New York, New York, USA -
- -
- Senior Software Engineer - Full Stack - Madrid, Spain; Paris, France -
- - - -
- Senior Software Engineer – IDE Integrations (VS Code & Cursor)remoteberlin - Denmark, Remote; France, Remote; Germany, Remote; Ireland, Remote; Italy, Remote; Poland, Remote; Spain, Remote; Sweden, Remote; Switzerland, Remote; The Netherlands, Remote; United Kingdom, Remote -
-
- Senior Software Engineer – IDE Integrations (VS Code & Cursor) - Bordeaux, France; Grenoble, France; Lyon, France; Madrid, Spain; Montpellier, France; Nantes, France; Nice, France; Paris, France; Tel Aviv, Israel -
- -
- Senior Staff Engineer - Event Platform Storage - New York, New York, USA -
- -
- Senior Staff Software Engineer - New York, New York, USA -
-
- Software Engineer - Developer Experience - Madrid, Spain; Paris, France -
- -
- Software Engineer with Systems Depth - Bordeaux, France; Grenoble, France; Lyon, France; Madrid, Spain; Nantes, France; Paris, France; Sophia Antipolis, France -
- -
- Staff Software Engineer - Boston, Massachusetts, USA; New York, New York, USA -
-
- Staff Software Engineer - Bordeaux, France; Grenoble, France; Lyon, France; Madrid, Spain; Montpellier, France; Nantes, France; Paris, France; Sophia Antipolis, France -
-
- Staff Software Engineer - Distributed Systems - Madrid, Spain; Paris, France -
-
- Staff Software Engineer - Frontend - New York, New York, USA -
-
- Staff Software Engineer - ML Observability - Boston, Massachusetts, USA; New York, New York, USA -
- - - - -
- Technical Escalations Engineer 3 (Internal Developer Portal) - US-East - Boston, Massachusetts, USA; New York, New York, USA -
-
- Technical Support Engineer 1 - Tokyo, Japan -
-
- Technical Support Engineer 1 - Tokyo, Japan -
-
- Technical Support Engineer 1 - 2 - Seoul, South Korea -
-
- Technical Support Engineer 1 - 2 - Seoul, South Korea -
- -
- Technical Support Engineer 2 - Bangalore, India -
-
- Technical Support Engineer 2 - Seoul, South Korea -
-
- Technical Support Engineer 2 - Tokyo, Japan -
-
- Technical Support Engineer 2 - Tokyo, Japan -
- -
- Technical Support Engineer 2, Premier - Sydney, Australia -
- -
- Technical Support Engineer 2, Premier - EMEA - Amsterdam, The Netherlands; Dublin, Ireland; Paris, France -
- -
-
- -
-
- Discord - 32 positions -
-
-
- Developer Operations Analyst - San Francisco Bay Area -
-
- Director of Engineering, Developer Ecosystem - San Francisco Bay Area -
-
- Engineering Manager, Ads Formats - San Francisco Bay Area -
-
- Engineering Manager, Engagement - San Francisco Bay Area -
-
- Rust/C++ Senior Software Engineer - San Francisco Bay Area -
-
- Senior Data Engineer, Analytics - San Francisco Bay Area -
- - - -
- Senior Software Engineer - Notifications - San Francisco Bay Area -
- -
- Senior Software Engineer - SEO - San Francisco Bay Area -
-
- Senior Software Engineer - Safety Experience - San Francisco Bay Area -
-
- Senior Software Engineer - Safety Processing - San Francisco Bay Area -
-
- Senior Software Engineer, Ads - San Francisco Bay Area -
-
- Senior Software Engineer, Ads - San Francisco Bay Area -
-
- Senior Software Engineer, Consumer Revenue - San Francisco Bay Area -
-
- Senior Software Engineer, Data Platform - San Francisco Bay Area -
- -
- Senior Software Engineer, Mobile Architecture - San Francisco Bay Area -
-
- Senior Software Engineer, Platform Security - San Francisco Bay Area -
- -
- Software Engineer - Realtime Infrastructure - San Francisco Bay Area -
-
- Software Engineer, Mobile - San Francisco Bay Area -
-
- Software Engineer, Payments - San Francisco Bay Area -
-
- Staff Software Engineer - Safety Experience - San Francisco Bay Area -
-
- Staff Software Engineer, Design Systems - San Francisco Bay Area -
-
- Staff Software Engineer, Mobile Architecture - San Francisco Bay Area -
-
- Staff Software Engineer, New Gaming Features - San Francisco Bay Area -
-
- Staff Software Engineer, Platform Securityremote - San Francisco Bay Area or Remote -
-
- Staff Software Engineer, Player Experience - San Francisco Bay Area -
-
@@ -3354,140 +1102,144 @@
Dropbox - 33 positions + 34 positions
-
+
CX Software Engineerremotecanada - Remote - Canada: Select locations + Canada
-
+
Engineering Manager, DocSendremotecanada - Remote - Canada: Select locations + Canada
-
+
Fullstack Product Software Engineer, Core Web Experienceremotecanada - Remote - Canada: Select locations + Canada
-
+
Fullstack Product Software Engineer, DocSendremotecanada - Remote - Canada: Select locations + Canada
-
+
Fullstack Product Software Engineer, Growth Monetizationremotecanada - Remote - Canada: Select locations + Canada
-
+
Infrastructure Software Engineer, Metadata remotecanada - Remote - Canada: Select locations + Canada
-
- Machine Learning Engineer, Dashremoteberlin - Remote - Germany +
+ Machine Learning Engineer, Dashremotegermany + Germany
-
+
Principal Product Manager - AI Security, Data Access Governance and DLPremotecanada - Remote - Canada: Select locations + Canada
-
+
Principal Software Engineerremotecanada - Remote - Canada: Select locations + Canada
-
+ +
Principal Software Engineer, Developer Productivityremotecanada - Remote - Canada: Select locations + Canada
-
+
Product Backend Software Engineer, Search Platformremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Android Software Engineer, Mobile Experienceremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Backend Product Software Engineerremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Backend Product Software Engineer, Reclaimremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Business Intelligence Engineerremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Engineering Manager, Core AI Platformremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Full Stack Product Software Engineerremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Fullstack Product Software Engineer, Core Growthremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Fullstack Product Software Engineer, Corporate ITremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Fullstack Product Software Engineer, DocSendremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Infrastructure Software Engineer, Storageremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Machine Learning Engineer, Dash remotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Network Engineer, Corporate ITremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior Salesforce Developer, Managed Storefrontremotecanada - Remote - Canada: Select locations + Canada
-
+
Senior iOS Software Engineer, Design Systemsremotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Backend Product Software Engineer, Coreremotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Backend Product Software Engineer, Core Intelligence & Mediaremotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Backend Product Software Engineer, Core Syncremotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Backend Product Software Engineer, Multi-Product Experience remotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Fullstack Software Engineer, Growth Monetizationremotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Product Manager, Securityremotecanada - Remote - Canada: Select locations + Canada
-
+
Staff Technical Program Manager, Engineering Productivityremotecanada - Remote - Canada: Select locations + Canada
-
+
iOS Software Engineer, Mobile Infrastructureremotecanada - Remote - Canada: Select locations + Canada
@@ -3495,298 +1247,213 @@
DuckDuckGo - 5 positions + 4 positions
-
+ -
- Senior Backend Engineer remote - USA (Remote) -
-
+ - -
-
- Fastly - 21 positions -
-
-
- Customer Solutions Engineer - London, United Kingdom -
-
- Customer Solutions Engineer - West Coast Remote - Albuquerque, NM; Boise, ID; Phoenix, AZ; Sacramento, CA -
-
- Director, Engineering - Platform Trust & Growth - Denver, CO; New York City, NY; San Francisco, CA -
- - - -
- Security TAM - Edge Cloud Security - Melbourne, Australia; Sydney, Australia -
-
- Senior Cloud Engineerremote - Australia (Remote) -
-
- Senior Cloud Engineer - Tokyo, Japan -
- -
- Senior Customer Support Engineerremote - Australia (Remote) -
-
- Senior Customer Support Engineer (TLS) - Melbourne, Australia; Sydney, Australia -
-
- Senior Data Centre Provisioning Engineerremote - Australia (Remote) -
- -
- Senior Manager - Detection Engineering - Denver, CO; New York City, NY; San Francisco, CA -
-
- Senior Network Engineer - Network Operations - Atlanta, GA; Boston, MA; New York City, NY -
-
- Senior Security Technical Account Manager - Atlanta, GA; Indianapolis, IN; Raleigh, NC; Richmond, VA; Tampa, FL -
- -
- Staff Engineer - Observability & Performance - Denver, CO; New York City, NY; San Francisco, CA -
-
- Staff Salesforce Developer (Hybrid or Remote - US only) - Atlanta, GA; Austin, TX; Boston, MA; Chicago, IL; Dallas, TX; Denver, CO; Houston, TX; Los Angeles, CA; New York City, NY; San Francisco, CA; Seattle, WA; Tampa, FL -
-
- Staff Software Engineer - Network Functions and Architecture - Denver, CO; New York City, NY; San Francisco, CA -
-
-
-
GitLab - 42 positions + 45 positions
-
+
Assigned Support Engineer (AMER)remotecanada - Remote, Canada; Remote, Chile; Remote, Costa Rica; Remote, Mexico; Remote, US + Canada
-
+
Associate Support Engineer (AMER - PST / MST)remotecanada - Remote, Canada; Remote, Chile; Remote, Costa Rica; Remote, Mexico; Remote, US + Canada
-
- Associate Support Engineer (EMEA)remote - Remote, EMEA + -
- Developer Relations Engineerremote - Remote, EMEA +
+ Developer Relations Engineerremoteemea + EMEA
-
+
+ Engineering Manager, Create:Source Coderemoteamericas + Americas +
+
Engineering Manager, Database Reliability, Scalability & Operationsremotecanada - Remote, Canada; Remote, US + Canada
-
- Engineering Manager, Fulfillment remotecanada - Remote, Canada; Remote, North America +
+ Engineering Manager, Fulfillment remotecanadaamericas + Americas
-
- Engineering Manager, Gitlab Deliveryremotecanada - Remote, Canada; Remote, EMEA +
+ Engineering Manager, Gitlab Deliveryremotecanadaemea + EMEA
-
- Engineering Manager, Infrastructure Platformsremote - Remote, Americas; Remote, EMEA +
+ Engineering Manager, Infrastructure Platformsremoteemeaamericas + Americas
-
- Engineering Manager, Software Supply Chain Security: Auth Infrastructureremotecanada - Remote, Canada; Remote, EMEA; Remote, US + -
+ -
- Intermediate Backend (Go) Engineer, Gitlab Delivery -Operateremotecanada - Remote, Canada; Remote, EMEA + -
+
Intermediate Backend Engineer (Go), Verify: Runner Coreremotecanada - Remote, Canada; Remote, Netherlands; Remote, United Kingdom; Remote, US-Southeast + Canada
-
- Intermediate Backend Engineer (Ruby on Rails), Analytics Instrumentation remotecanada - Remote, APAC; Remote, Canada; Remote, EMEA; Remote, Netherlands; Remote, United Kingdom + -
+
Intermediate Fullstack Engineer (TypeScript), AI Engineering: Editor Extensions – Multi-Platformremotecanada - Remote, APAC; Remote, Canada; Remote, Netherlands; Remote, United Kingdom + Canada
-
- Intermediate Site Reliability Engineer, Database Operationsremote - Remote, EMEA + -
- Intermediate Site Reliability Engineer, Environment Automationremote - Remote, EMEA + -
- Intermediate Site Reliability Engineer, Tenant Scale: Tenant Servicesremote - Remote, Americas; Remote, EMEA + -
+
Intermediate Support Engineer (AMER - PST / MST)remotecanada - Remote, Canada; Remote, Chile; Remote, Costa Rica; Remote, Mexico; Remote, US + Canada
-
+
Manager, Customer Success Engineersremotecanada - Remote, Canada; Remote, US + Canada
-
+
Practice Engineer - AMERremotecanada - Remote, Canada; Remote, US + Canada
-
- Principal Database Engineer, Data Engineeringremote - Remote, EMEA; Remote, North America +
+ Principal Database Engineer, Data Engineeringremoteemeaamericas + Americas
-
+ -
+
Principal Engineer, Software Supply Chain Securityremotecanada - Remote, Canada; Remote, Israel; Remote, Netherlands; Remote, United Kingdom; Remote, US + Canada
-
- Principal Infrastructure Security Architectremotecanada - Remote, APAC; Remote, Canada; Remote, EMEA; Remote, US + -
+
Principal Product Manager, Security & Complianceremotecanada - Remote, Canada; Remote, United Kingdom; Remote, US + Canada
-
+ +
Principal Product Marketing Manager, DevSecOps Platformremotecanada - Remote, Canada; Remote, US + Canada
-
- Principal Security Engineer, Application Security remote - Remote, APAC; Remote, EMEA; Remote, North America; Remote, US + -
- Senior Backend (Go) Engineer, Gitlab Delivery -Operateremote - Remote, Americas; Remote, EMEA + -
+
Senior Backend Engineer (Ruby on Rails), Verify: Pipeline Executionremotecanada - Remote, APAC; Remote, Canada; Remote, Netherlands; Remote, United Kingdom + Canada
-
- Senior Backend Engineer (Ruby), Tenant Scale, Georemote - Remote, Americas; Remote, EMEA +
+ Senior Backend Engineer (Ruby), Tenant Scale, Georemoteemeaamericas + Americas
-
- Senior Backend Engineer(Golang),Software Supply Chain Security: Auth Infrastructureremotecanada - Remote, Americas; Remote, APAC; Remote, Canada + -
- Senior Frontend Engineer, AI Engineering: Duo Chatremote - Remote, Americas; Remote, EMEA + -
+
Senior Fullstack Engineer (RoR/vue.js), Software Supply Chain Security: Authorizationremotecanada - Remote, Canada; Remote, Netherlands; Remote, United Kingdom + Canada
-
- Senior Infrastructure Security Engineer remote - Remote, Australia; Remote, EMEA; Remote, Japan; Remote, New Zealand + -
- Senior Manager, Developer Advocacyremote - Remote, EMEA; Remote, North America +
+ Senior Manager, Developer Advocacyremoteemeaamericas + Americas
-
- Senior PSIRT Security Engineer, EMEAremote - Remote, EMEA + -
- Senior Site Reliability Engineer, Environment Automationremotecanada - Remote, Americas; Remote, Canada + -
+ -
- Staff Backend Engineer, Developer Experience (Ruby)remotecanada - Remote, APAC; Remote, Canada; Remote, EMEA; Remote, Netherlands; Remote, United Kingdom + -
- Staff Engineer, GitLab Delivery - Operateremote - Remote, Americas; Remote, EMEA +
+ Staff Engineer, GitLab Delivery - Operateremoteemeaamericas + Americas
- @@ -3794,148 +1461,56 @@
GrafanaLabs - 35 positions + 12 positions
-
- Commercial Solutions Engineer | Benelux | Remoteremote - Netherlands (Remote) -
-
+ - - - -
+
Senior AI Engineer - Grafana Ops, AI/ML | Canada | Remoteremotecanada - Canada (Remote) + Canada
-
- Senior AI Engineer - Grafana Ops, AI/ML | USA | Remoteremote - United States (Remote) -
-
+ - -
+ - -
+
Senior Backend Software Engineer, Alerting | Canada | Remoteremotecanada - Canada (Remote) + Canada
- -
- Senior Salesforce CPQ Developer| United States |Remote remote - United States (Remote) -
-
+ -
- Senior Software Engineer, Grafana OSS Big Tent | US | Remoteremote - United States (Remote) + -
- Senior Software Security Engineer, Detection Engineering | Germany | Remoteremoteberlin - Germany (Remote) + - - - -
- Senior Solutions Engineer | Spain | Remoteremote - Spain (Remote) -
-
- Senior Solutions Engineer | Germany | Remoteremoteberlin - Germany (Remote) -
-
- Senior Solutions Engineer | Sweden | Remote remote - Sweden (Remote) -
- - -
+
Staff AI Engineer - Grafana Ops, AI/ML | Canada | Remoteremotecanada - Canada (Remote) + Canada
-
- Staff AI Engineer - Grafana Ops, AI/ML | USA | Remoteremote - United States (Remote) -
-
-
+
Senior Engineering Manager - Signals Teamremotecanada - Remote - Canada + Canada
-
+
Staff AI Engineerremotecanada - Remote - Canada + Canada
@@ -3960,273 +1535,240 @@
JetBrains - 60 positions + 58 positions
-
- (Senior) Backend Developer (Java/Kotlin) - Business Application Developmentremoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Engineering Squad Lead (JetBrains Research)remoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Enterprise Customer Success Engineer (Post-Sales) - US - Marlton, New Jersey +
+ FullStack ML Developerremotegermany + Germany
-
- FullStack ML Developerremoteberlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Head of Corporate Securitygermany + Germany
-
- Head of Corporate Securityberlin - Amsterdam, Netherlands; Berlin, Germany; Munich, Germany +
+ Infrastructure Security Engineerremotegermany + Germany
-
- Infrastructure Security Engineerremoteberlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Java Developer (Backend) ‒ TeamCity, Build Tools Integrationberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland + -
- JetBrains Go Developer Advocate (Developer Advocacy)remoteberlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- JetBrains Rust Developer Advocateberlin - Amsterdam, Netherlands; Berlin, Germany; Boston, Massachusetts; London, United Kingdom; Munich, Germany + -
- JetBrains Web Developer Advocate (Developer Advocacy)remoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Madrid, Spain; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Kotlin Backend Developer (Kocelot Team, Platform)berlin - Berlin, Germany; Paphos, Cyprus; Prague, Czech Republic +
+ Kotlin Developer Advocategermany + Germany
-
- Kotlin Developer Advocateberlin - Amsterdam, Netherlands; Berlin, Germany; Dubai, United Arab Emirates; Limassol, Cyprus; London, United Kingdom; Madrid, Spain; Munich, Germany; Prague, Czech Republic + -
- Machine Learning Evaluation Engineer (Agentic Mobile App Generator)berlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Project Maintainer – DPAI Arena Evaluation Infrastructureremoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Project Manager (Software Engineering Research)berlin - Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- QA Engineer (Kotlin Build Tools)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- QA Engineer (Kotlin Compiler Frontend)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia +
+ QA Engineer (Rider IDE)germany + Germany
-
- QA Engineer (Rider IDE)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- QA Engineer (Version Control Experience) - Belgrade, Serbia; Limassol, Cyprus; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia +
+ Research Engineer (Agentic Models)remotegermany + Germany
-
- Quality Engineer (IDEs department) berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Research Engineer (Agentic Models)remoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Research Engineer - JetBrains AIremotegermany + Germany
-
- Research Engineer (LLM Training and Performance)berlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Research Engineer - JetBrains AIremoteberlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- SDET Engineer in KED QA Automation teamberlin - Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- SDET Engineer in Kotlin Performance QA teamberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia +
+ Security Compliance Specialistremotegermany + Germany
-
- SSH & Remote Development Engineerberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia +
+ Security Engineer in Product Securityremotegermany + Germany
-
- Security Compliance Specialistremoteberlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland +
+ Senior Backend Engineer (Matter)remotegermany + Germany
-
- Security Engineer in Product Securityremoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Senior Backend Engineer (Matter)remoteberlin - Berlin, Germany; Munich, Germany; Remote, Germany + -
- Senior Developer at Rider (GameDev Tools) remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Senior ML Engineer (JetBrains Research)remotegermany + Germany
-
- Senior Kotlin Backend Developer (BioKB Project)berlin - Berlin, Germany; Paphos, Cyprus; Prague, Czech Republic + -
- Senior ML Engineer (JetBrains Research)remoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Senior Machine Learning Engineer (IntelliJ AI)berlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic + -
- Senior Product Manager (AI BI Platform)berlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia +
+ Senior QA engineer (BAD)remotegermany + Germany
-
- Senior Product Manager (IntelliJ Platform)berlin - Amsterdam, Netherlands; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Senior QA engineer (BAD)remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Senior Software Developer (Qodana Core)remotegermany + Germany
-
- Senior Software Developer (IntelliJ AI)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Senior Software Developer (Qodana Core)remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Senior Software Developer (Rider)remotegermany + Germany
-
- Senior Software Developer (Quality Infrastructure) berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Senior Software Developer (Rider)remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Senior Software Developer - Kotlin Nativeremoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Senior Software Engineer (.NET tooling Core)remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Senior Software Engineer – IntelliJ Ultimate Teamberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Senior/Staff Software Developer - Kotlin Multiplatform Toolingremoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Software Developer (IntelliJ Platform)remotegermany + Germany
-
- Software Developer (IntelliJ Platform – Version Control Experience)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia +
+ Software Developer (Orca)germany + Germany
-
- Software Developer (IntelliJ Platform)remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Software Developer (Orca)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Software Developer (Platform/ Remote Development)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Software Developer (Station/Toolbox App)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Software Development Engineer in Test (Rider)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Software Engineer (IntelliJ Platfrom Licensing)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Staff Product Manager (High Performance Data Infrastructure)berlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Tel Aviv, Israel; Warsaw, Poland; Yerevan, Armenia + -
- Staff Software Developer (Kotlin Libraries)remoteberlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; London, United Kingdom; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia +
+ Support Engineer (IDE Services)remotegermany + Germany
-
- Support Engineer (Business Applications Development)remoteberlin - Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Support Engineer (IDE Services)remoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia + -
- Support Engineer (JetBrains Academy)berlin - Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Support Engineer (JetBrains Console)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia + -
- Support Engineer (JetBrains Hub)berlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Yerevan, Armenia -
-
- Technical Lead (IntelliJ Platform)berlin - Amsterdam, Netherlands; Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Warsaw, Poland; Yerevan, Armenia -
-
- YouTrack Internal Automation Engineerremoteberlin - Belgrade, Serbia; Berlin, Germany; Limassol, Cyprus; Munich, Germany; Paphos, Cyprus; Prague, Czech Republic; Remote, Germany; Warsaw, Poland; Yerevan, Armenia -
-
-
- -
-
- Materialize - 4 positions -
-
-
- Field Engineer - New York, New York, United States -
-
- Senior / Staff Software Engineer (Cloud) - New York, New York, United States -
-
- Senior / Staff Software Engineer (Database) - New York, New York, United States -
-
- Staff Full Stack Engineer, Console - New York, New York, United States +
+ YouTrack Internal Automation Engineerremotegermany + Germany
@@ -4234,24 +1776,12 @@
PingCAP - 4 positions + 1 positions
-
- Global Support Engineer Intern - Onsite - Malaysia -
-
- Global Support Engineer Intern - Onsite - Malaysia -
-
+
Senior Software Engineer - Distributed Storageremotecanada - Remote - United States or Canada -
-
- Technical Support Engineer - Tokyo - Hybrid - Tokyo + Canada
@@ -4262,13 +1792,13 @@ 2 positions
-
- Senior Platform Engineer: Storageremote - Global +
+ Senior Platform Engineer: Storageremoteworldwide + Worldwide
-
- Solution Engineerremote - Global +
+ Solution Engineerremoteworldwide + Worldwide
@@ -4279,19 +1809,19 @@ 4 positions
-
+
Dataframe SDK Engineerremote Remote
-
+ -
+ -
+ @@ -4301,140 +1831,36 @@
Sentry - 33 positions + 7 positions
-
+
Engineering Manager, Data Browsingcanada - Toronto, Ontario, Canada + Canada
-
- Engineering Manager, Event Streaming - San Francisco, California -
-
- Engineering Manager, Product Platform - San Francisco, California -
-
- Head of Security - San Francisco, California -
-
- Sales Engineer - San Francisco, California -
-
- Senior Developer Experience Engineer - San Francisco, California -
-
+
Senior Frontend Engineer, Data Browsingcanada - Toronto, Ontario, Canada + Canada
-
- Senior Full Stack Engineer, Core Product - San Francisco, California -
-
+
Senior Full Stack Engineer, Core Product canada - Toronto, Ontario, Canada + Canada
-
+
Senior Fullstack Engineer, Data Browsingcanada - Toronto, Ontario, Canada + Canada
- - -
+
Senior Security Engineer, Application & Platform Securitycanada - Toronto, Ontario, Canada + Canada
- -
- Senior Software Engineer, AI - San Francisco, California -
-
- Senior Software Engineer, AI Eval - San Francisco, California -
-
- Senior Software Engineer, Backend Issue Workflow - San Francisco, California -
- -
- Senior Software Engineer, Developer Infrastructure - San Francisco, California -
-
- Senior Software Engineer, Frontend Issue Workflow - San Francisco, California -
-
- Senior Software Engineer, Infrastructure - San Francisco, California -
-
- Senior Software Engineer, Infrastructure - Seattle, Washington, US -
-
+
Senior Software Engineer, Infrastructurecanada - Toronto, Ontario, Canada + Canada
-
- Senior Software Engineer, Ingest - Vienna, Austria -
-
+
Senior Software Engineer, Ingestcanada - Toronto, Ontario, Canada -
-
- Senior Software Engineer, Platform - Vienna, Austria -
-
- Senior Software Engineer, Product Platform - San Francisco, California -
-
- Senior Software Engineer, Streaming Platform - San Francisco, California -
-
- Senior Solutions Engineer - San Francisco, California -
-
- Senior Solutions Engineer - New York City, New York -
-
- Senior Solutions Engineer remote - Sydney, Australia -
-
- Solutions Engineer - San Francisco, California -
-
- Staff Machine Learning Engineer, AI - San Francisco, California + Canada
@@ -4442,604 +1868,120 @@
Stripe - 149 positions + 28 positions
-
+
Android Engineer, Linkcanada - Toronto + Canada
-
- AV Broadcast Engineer - Dublin -
- -
- Account Executive, Platforms (German-speaking)berlin + - - - - - - -
- Account Executive, SMB Platforms (New Business) - Chicago, New York, San Fransisco -
-
- Account Executive, Startup Platforms (Existing Business) - Chicago, New York, San Fransisco -
-
- Backend / API Engineer, Payouts - United Kingdom -
-
- Backend Engineer - Dublin -
-
- Backend Engineer, Core Technologyremote - Seattle, San Francisco, US-Remote -
- -
- Backend Engineer, Core Technology - Bucharest, Romania -
-
+
Backend Engineer, DEePremotecanada - Toronto Canada, Remote in Canada + Canada
-
+
Backend Engineer, Datacanada Canada
- -
+
Backend Engineer, Link canada - Toronto + Canada
- -
+
Backend Engineer, Revenue and Financial Automationremotecanada - Toronto, CAN-Remote + Canada
- -
+
Backend Engineer/API, Payments and Riskremotecanada - Toronto, Canada Remote + Canada
- - - -
+ -
- Broadcast Engineer - San Francisco, CA -
-
- Business Development Manager, Developer Platformsremote - SF, NYC, Seattle, Remote -
- -
+
Client Onboarding Integration Engineercanada - Toronto, CA; Chicago, IL + Canada
-
- Compensation Partner, Product & Engineering - NYC, San Francisco, Seattle -
- -
- Demo Engineer - San Francisco -
- -
+
Design Engineer, Presencecanada - US, Canada + Canada
-
- Developer Experience Engineer, Privyremote - NYC-Privy, US-Remote -
- - - - - -
- Engineering Manager, Privy - New York Privy HQ -
- -
+ - - -
- Enterprise Integration Engineer - Mexico City, MX -
- -
- Forward Deployed Engineer, Privy - New York Privy HQ -
-
- Frontend Engineering Manager, Payments - Seattle, San Francisco -
- - - -
+
Full Stack Engineer, Enterprise & Ecosystemcanada - Toronto, Canada + Canada
-
+
Full Stack Engineer, Linkremotecanada - Toronto, Remote in Canada + Canada
- - - - - - - - -
- Head of Platforms, Customer Successremote - US-SF, US-NYC, US-Remote -
-
- IT Support Engineer - Singapore -
- -
+
Integration Engineer, Professional Servicescanada - Toronto, Canada + Canada
- - - -
+
Integration Reliability Engineer, Technical Operations, Cardsremotecanada - Toronto, Remote in Canada + Canada
-
+ -
+ -
+
Launch Integration Engineercanada - Toronto, CA + Canada
-
- Machine Learning Engineer, Foundation Model - US - San Francisco; Seattle; New York City -
-
- Machine Learning Engineer, Identity Product - San Francisco, Seattle -
-
- Machine Learning Engineer, Payments ML Accelerator - Seattle; San Francisco; New York City -
- - -
- PhD Machine Learning Engineer, Intern - San Francisco, New York City, Seattle -
-
- PhD Machine Learning Engineer, New Grad - San Francisco, New York City, Seattle -
- - -
- Product Manager, Compliance Platformremote - San Francisco, Seattle, New York, US - Remote -
- - - - - - -
- Sales Strategy & Operations Analyst, Platform Salesremote - CHI, ATL, US-Remote -
-
+
Security Engineer, New Grad canada - Seattle, WA; San Francisco, CA; Toronto, CAN + Canada
- - -
- Software Engineer - Smart Contract, Bridge - San Francisco or New York -
-
- Software Engineer, Bridge - San Francisco, NY, Seattle -
- - - - -
- Software Engineer, Intern - Bucharest -
- - -
+
Software Engineer, Interncanada - Toronto + Canada
-
- Software Engineer, Intern - Singapore -
-
- Software Engineer, Intern (Summer and Winter) - San Francisco, Seattle, New York City -
- -
+
Software Engineer, Machine Learning Infrastructurecanada - Toronto, Canada + Canada
- - -
- Software Engineer, New Grad - Barcelona -
-
- Software Engineer, New Grad - San Francisco, Seattle -
-
+
Software Engineer, New Gradcanada - Toronto + Canada
- - -
- Software Engineer, Sales Systems - Bengaluru, India -
- - - - -
- Solutions Architect, Enterprise Platforms - San Francisco, CA OR New York, NY -
-
- Solutions Architect, Enterprise Platforms Grower - Chicago, IL or New York, NY or San Francisco, CA -
-
- Solutions Architect, Strategic Enterprise Platformsremote - San Francisco, CA or New York, NY or Remote -
-
- Solutions Engineer, Bridge - San Francisco or New York -
- - - - - - - - -
- Staff Engineer, Payments - Seattle, San Francisco -
- - - - -
+
Staff Product Designer, Developer AIcanada - US / Canada + Canada
-
- Staff Security Engineer, Security Partnershipsremote - Remote, North America + -
+
Staff Software Engineer, Billingremotecanada - Toronto, Canada, Canada Remote + Canada
-
+
Staff Software Engineer, Dataremotecanada - Toronto, Canada, Canada Remote + Canada
-
+ -
- Strategy & Operations, Infrastructure remote - Seattle, San Francisco, NYC, Chicago, Remote -
-
@@ -5050,79 +1992,79 @@ 19 positions
-
+
CLI Engineerremote Remote
-
+ -
+ -
+ -
+ -
+ -
+
FinOps Engineerremote Remote
-
+ -
+
Multigres Engineerremote Remote
-
+ -
+ -
+
Postgres Engineerremote Remote
-
+
Rust Engineerremote Remote
-
+ -
+ -
+ -
+ -
+ -
+ @@ -5135,53 +2077,66 @@ 12 positions
-
+
Analytics Engineer, Dataremotecanada - Remote (Canada) + Canada
-
+
Backend Engineer, Identityremotecanada - Remote (Canada) + Canada
-
+
Backend Engineer, Platformremotecanada - Remote (Canada) + Canada
-
+
Manager, Solutions Engineering - Enterpriseremotecanada - Remote (Canada) + Canada
-
+
Product Growth Engineerremotecanada - Remote (Canada) + Canada
-
+
Security Infrastructure Engineerremotecanada - Remote (Canada) + Canada
-
+
Security Software Engineerremotecanada - Remote (Canada) + Canada
-
+
Software Engineer, Networkingremotecanada - Remote (Canada) + Canada
-
+
Software Engineer, Product Strategyremotecanada - Remote (Canada) + Canada
-
+
Solutions Engineer - Commercial (Expansion Sales)remotecanada - Remote (Canada) + Canada
-
+
Solutions Engineer - Commercial (New Business)remotecanada - Remote (Canada) + Canada
-
+
Test Automation Engineerremotecanada - Remote (Canada) + Canada +
+
+
+ +
+
+ TigerData + 1 positions +
+
diff --git a/data/jobs.db-journal b/data/jobs.db-journal deleted file mode 100644 index da5604d..0000000 Binary files a/data/jobs.db-journal and /dev/null differ diff --git a/db.py b/db.py index 7e13a17..1ffff33 100644 --- a/db.py +++ b/db.py @@ -35,8 +35,11 @@ class Database: @contextmanager def _get_conn(self): """Get a database connection.""" - conn = sqlite3.connect(self.db_path) + conn = sqlite3.connect(self.db_path, timeout=30.0) conn.row_factory = sqlite3.Row + # Enable WAL mode for better concurrency + conn.execute("PRAGMA journal_mode=WAL") + conn.execute("PRAGMA busy_timeout=30000") try: yield conn conn.commit() @@ -236,3 +239,11 @@ class Database: ) results.append((row["company_name"], job)) return results + + def get_all_companies(self) -> list[str]: + """Get all company names from the database.""" + with self._get_conn() as conn: + cursor = conn.execute( + "SELECT name FROM companies WHERE active = TRUE ORDER BY name" + ) + return [row["name"] for row in cursor.fetchall()] diff --git a/docker-compose.yaml b/docker-compose.yaml index 522031b..09d9400 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,6 +6,7 @@ services: volumes: - ./data:/app/data - ./config.yaml:/app/config.yaml:ro + - /home/gruberb/.msmtprc:/root/.msmtprc:ro environment: - TZ=America/Toronto @@ -16,6 +17,7 @@ services: volumes: - ./data:/app/data - ./config.yaml:/app/config.yaml:ro + - /home/gruberb/.msmtprc:/root/.msmtprc:ro environment: - TZ=America/Toronto command: ["python", "main.py", "--schedule"] diff --git a/notify.py b/notify.py index a31a511..201dc86 100644 --- a/notify.py +++ b/notify.py @@ -38,6 +38,11 @@ class Notifier: if email_config: self._notify_email(reports_with_changes, email_config) + # msmtp (if configured - uses system msmtp config) + msmtp_config = self.config.get("msmtp") + if msmtp_config: + self._notify_msmtp(reports_with_changes, msmtp_config) + # Slack (if configured) slack_config = self.config.get("slack") if slack_config: @@ -98,6 +103,83 @@ class Notifier: except Exception as e: print(f"✗ Failed to send email: {e}") + def _notify_msmtp(self, reports: list[ChangeReport], config: dict): + """Send email notification via system msmtp.""" + import subprocess + from datetime import datetime + + to_addr = config.get("to_addr", "me@bastiangruber.ca") + from_addr = config.get("from_addr", "admin@novanexus.ca") + + total_new = sum(len(r.new_jobs) for r in reports) + total_removed = sum(len(r.removed_jobs) for r in reports) + + # Build subject line + parts = [] + if total_new: + parts.append(f"+{total_new} new") + if total_removed: + parts.append(f"-{total_removed} removed") + subject = f"Job Board Update: {', '.join(parts)}" + + # Build plain text body + body_lines = [ + "JOB BOARD CHANGES", + f"{datetime.now().strftime('%Y-%m-%d %H:%M')}", + "", + f"Summary: {total_new} new jobs, {total_removed} removed jobs", + "", + ] + + for report in reports: + body_lines.append(f"{report.company_name} ({report.total_active} active)") + body_lines.append("-" * 40) + + if report.new_jobs: + body_lines.append(f" NEW ({len(report.new_jobs)}):") + for job in report.new_jobs: + location_str = f" [{job.location}]" if job.location else "" + remote_str = " (Remote)" if job.remote_type == "remote" else "" + body_lines.append(f" + {job.title}{location_str}{remote_str}") + body_lines.append(f" {job.url}") + + if report.removed_jobs: + body_lines.append(f" REMOVED ({len(report.removed_jobs)}):") + for job in report.removed_jobs: + body_lines.append(f" - {job.title}") + + body_lines.append("") + + body_lines.append("---") + body_lines.append("Generated by job-scraper") + + body = "\n".join(body_lines) + + # Build email message + email_msg = f"""Subject: {subject} +From: {from_addr} +To: {to_addr} +Content-Type: text/plain; charset=UTF-8 + +{body} +""" + + try: + result = subprocess.run( + ["msmtp", to_addr], + input=email_msg, + capture_output=True, + text=True, + ) + if result.returncode == 0: + print("✓ msmtp notification sent") + else: + print(f"✗ msmtp failed: {result.stderr}") + except FileNotFoundError: + print("✗ msmtp not found - install with: apt install msmtp") + except Exception as e: + print(f"✗ Failed to send msmtp notification: {e}") + def _notify_slack(self, reports: list[ChangeReport], config: dict): """Send Slack notification.""" import httpx