TrendSpider is a professional tool for those who trade anything from stocks to cryptos. We provide smart retail traders, financial advisors and hedge funds with the market research and algo trading platform. We need a Node.js engineer who’s going to primarily deal with data feeds (market data and alternative data).
You’ll be dealing with a microservice architecture (30+ microservices) where the vast majority of services run on Node.js. Microservices either provide HTTP REST APIs using Express and Fastify (no Next.js, no GraphQL) or use Websocket. Cloud infrastructure is AWS, CI/CD pipelines are on Gitlab and Bitbucket. Container orchestration is K8s and Docker Swarm. Data pipelines mostly run on AWS Lambda.Code is all ECMAScript. Quality of code is high, but in some data pipelines it’s rather acceptable.
There are no variables named “x”. There’s a coding convention. Overall, we value solving problems and delivering value to our customers way above using this new fancy technology just for the purpose of using it. The workflow is a lightweight mix of scrum and kanban, with a low level of formality. There’s a QA team, but engineers test their work thoroughly too. You’ll be supervised in the beginning. As soon as we get on the same page regarding values in engineering, you’ll be having less and less supervision, until you get to a point when you will make most of the decisions yourself. The team is all remote, from Argentina to Ukraine. Languages are English and Russian. Speaking Russian would be a bonus, but not a must have.The hiring process is short and straightforward. First, a few emails, then one interview call with 1-2 people and that’s it.While we expect you to primarily deal with the data pipelines, this position offers you a number of directions for growth. You will have the opportunity to work with highly loaded components (i.e., real time market data firehose intake) and fairly sophisticated architecture. You will also have a chance to work with active traders and learn about markets and trading as a whole, backtesting and algorithmic trading. You’ll be able to work on business logic related to algo trading if you’re interested and capable. In general, if you’re interested in trading and want to dive deep, then it’s the right place for you.
Apply With Resume
*First Name*Middle NameLast Name*Email*MobilePhoneDo you have a job code for this position? (If you don't, enter NO)*Social Network and Web LinksProvide us with links to see some of your work (Git/ Dribble/ Behance/ Pinterest/ Blog/ Medium) +
{
"@context" : "http://schema.org/",
"@type" : "JobPosting",
"url" : "https://trendspider.freshteam.com/jobs/Ed2RQISMgPsW/Back-end%20Node.js%20Developer%20(Remote)",
"title" : "Back-end Node.js Developer (Remote)",
"description" : "<h2 dir="ltr" style="line-height:1.38;margin-top:18pt;margin-bottom:6pt;"><span style="font-size:16pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Back-End Node.js Developer </span></h2><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">TrendSpider is a professional tool for those who trade anything from stocks to cryptos.
We provide smart retail traders, financial advisors and hedge funds with the market research and algo trading platform. We need a Node.js engineer who’s going to primarily deal with data feeds (market data and alternative data).</span></p><div><br></div><ol style="margin-top:0;margin-bottom:0;"><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Connecting new data types and maintaining existing pipelines</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Improving observability in data import pipelines</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Working on business logic which is necessary for data to work in charting, scanning, backtesting, custom JS scripting etc.</span></p></li></ol><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Here are the skills required in order to do the job well:</span></p><div><br></div><ol style="margin-top:0;margin-bottom:0;"><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Experience establishing cloud infrastructure via Terraform.
AWS Lambda + SQS is a bare minimum.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Strong expertise in Node.js.
At the very least, you need experience profiling, debugging a memory leak and an event loop jam in a Node.js service. Some services handle tens of thousands of messages per second, some pipelines handle gigabytes of data with limited RAM, that’s why.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Experience working with PostgreSQL and MongoDB with no ORMs.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Experience dealing with massive data (both “read a lot” and “write a lot”) in PostgreSQL.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Strong understanding of ideas of both OOP and functional programming.
We use both, depending on a component and a goal.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Capability for testing your work well.
Both writing automated tests (units, function, e2e) and running checks by doing what customers do.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Capability for figuring things out.
All data vendors are different, all APIs are different and every kind of data has its own scale. </span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Ability to pay attention to small details, like this one.
If you read this, enter the word "green" in the "job code" text box on the application (to cut down on fake applications and bot applications.)</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Capability for building simple solutions for complex problems.
Simplicity of solutions is the king here.</span></p></li><li dir="ltr" style="list-style-type:decimal;font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Hands-on experience trading or designing strategies will be a significant bonus.</span></p></li></ol><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">You’ll be dealing with a microservice architecture (30+ microservices) where the vast majority of services run on Node.js.
Microservices either provide HTTP REST APIs using Express and Fastify (no Next.js, no GraphQL) or use Websocket. Cloud infrastructure is AWS, CI/CD pipelines are on Gitlab and Bitbucket. Container orchestration is K8s and Docker Swarm. Data pipelines mostly run on AWS Lambda.</span></p><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Code is all ECMAScript.
Quality of code is high, but in some data pipelines it’s rather acceptable. There are no variables named “x”. There’s a coding convention. Overall, we value solving problems and delivering value to our customers way above using this new fancy technology just for the purpose of using it. </span></p><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The workflow is a lightweight mix of scrum and kanban, with a low level of formality.
There’s a QA team, but engineers test their work thoroughly too. You’ll be supervised in the beginning. As soon as we get on the same page regarding values in engineering, you’ll be having less and less supervision, until you get to a point when you will make most of the decisions yourself. The team is all remote, from Argentina to Ukraine. Languages are English and Russian. Speaking Russian would be a bonus, but not a must have.</span></p><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The hiring process is short and straightforward.
First, a few emails, then one interview call with 1-2 people and that’s it.</span></p><div><br></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">While we expect you to primarily deal with the data pipelines, this position offers you a number of directions for growth.
You will have the opportunity to work with highly loaded components (i.e., real time market data firehose intake) and fairly sophisticated architecture. You will also have a chance to work with active traders and learn about markets and trading as a whole, backtesting and algorithmic trading. You’ll be able to work on business logic related to algo trading if you’re interested and capable. In general, if you’re interested in trading and want to dive deep, then it’s the right place for you.</span></p>",
"datePosted" : "2024-07-15 20:30:14 UTC",
"employmentType" : "FULL_TIME",
"remote" : "true",
"hiringOrganization" : {
"@type":"Organization",
"name":"TrendSpider"
},
"jobLocation" : {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "",
"addressRegion": "Chicago",
"postalCode": "",
"addressLocality": "Illinois",
"addressCountry": "United States of America"
}
}
}
var translation = { 'employer_title': `Designation`, 'employer_company': `Company/Business name`, 'employer_start_date': `Start date`, 'employer_end_date': `End date`, 'employer_is_current': `I currently work here`, 'employer_summary': `Summary`, 'employer_remove': `Remove this employer`, 'education_degree': `Degree`, 'education_field_of_study': `Field of study/major`, 'education_school_name': `Institution/school name`, 'education_start_date': `Start date`, 'education_end_date': `End date`, 'education_is_current': `Currently pursuing`, 'education_grade': `Grade`, 'education_remove': `Remove this degree` };