...ideally long-term. See gates.opticatonline.com for one of the sites in the family (WIP). Candidates: please deliver resume+responses.
Job Description – Senior Software Developer
Have both a high-impact role on a small team (team member #3) and the resource backing of a big company (400+) & industry-leader in the Automotive Aftermarket sector (http://www.tecalliance.net
). We have a small office in Issaquah WA to escape the commute woes into Seattle or Bellevue, bring our dogs to work, and have interesting, BIG, and high-value projects to work on. Seeking a "Full-Stack" Scala developer who can make his way through both backend and frontend code while making the appropriate technology & complexity trade-offs. Ideal candidate enjoys working in a small & autonomous team, doesn't mind the suburban-ish office (with fiber optic internet!) & commute.
Morning person. Since our big company backer is based in Germany, we have the occasional call 1-2 times a week at 8 am PST (5pm CET). Some short interstate and international travel might be required, as well as being comfortable conversing with non-native english speakers in a professional relationship.
Technologies: Scala, Scala.js, Apache Solr, HAProxy, Ansible, AWS, Git, Bootstrap, Less
● Strive to be a Pragmatic Programmer (https://pragprog.com/the-pragmatic-programmer/extracts/tips
● Be a generalist: comfortable working on Backend, Frontend, DevOps, Architecture, etc
● Write high-quality, performant, and maintainable code, with an attention to detail
● Understand, maintain, evolve, and refactor a medium/large sized code base
● Write high-quality APIs for either internal Scala/Java libraries or external facing web services
● Understand and make use of complex data models (e.g. TecDoc Data Standard, ACES/PIES Data Standards, etc.)
● Challenge assertions, defend good positions, and propose refactoring
● Be brave and have initiative in solidifying design and scope early on, with determination to maintain high standards
● Scala - 2+ years
○ We love Scala and you should too!
○ We started off using Ruby on Rails for our frontend and Java for our backend. Both had their challenges. RoR was hard to maintain and Java was way too verbose. Now with Scala we feel like we get the best of both worlds and have never looked back.
● Apache Solr / ElasticSearch / Lucene
○ We make heavy use of Apache Solr so it would be very helpful to have a good understanding of what it is and how it works.
● Java - 5+ years
○ Since Scala runs on top of the JVM and we make heavy use of Open Source Java libraries you should be very comfortable with Java.
○ Can use tools like visualvm, jconsole, YourKit, etc. to monitor, troubleshoot, and profile running JVM processes.
● Software Development - 7+ years - You should know how to:
○ Write maintainable code
○ Refactor as you go
○ Minimize Technical Debt
○ Maintain a code base over a long period of time
● Ruby / Python / Perl / Bash - 2+ years
○ Besides writing the occasional Bash script we don’t make much use of these languages but you should have run into these and made use of them at some point.
● Linux / BSD - 5+ years
○ We develop on Mac and deploy to Linux servers so you should know your way around Linux/BSD and be comfortable with the standard command line tools (find, xargs, grep, etc.).
● AWS - 5+ years
○ We are probably biased towards Amazon Web Services since we both used to work for Amazon but you should definitely have experience with “cloud” based services and how to best leverage them.
○ We make use of EC2, S3, Cloudfront, Route53, ELB, Cloudwatch, etc.
● Git - 5+ years
○ We use private Github repositories for managing pull requests and code reviews
● NoSQL - 5+ years
○ We tend to favor “NoSQL” databases for their simplicity but it’s important to understand their strengths and weaknesses.
○ You should have exposure to at least a few of the various NoSQL database out there.
● RDBMS - 5+ years
○ We tend to avoid SQL Database when possible but you should still understand what they are good for and when to use them
● Web - 5+ years
Please explain why you are a good fit for this position.
How did you get involved in using Scala? What interests you the most about Scala? Why do you want to write code using Scala?
Why are you interested in working at a very small company?
Rate your interest in the following roles on a scale from 1 (least interested) to 10 (most interested):
- Prototyping / R&D (investigating new technologies)
- Backend Coding (Scala)
- Product Management
- QA / Testing
Which 3 Pragmatic Programmer tips (https://pragprog.com/the-pragmatic-programmer/extracts/tips
) do you identify with the most and why?
Which SQL and NoSQL Databases have you used and what was your impression with them?
Describe your ideal position, work, and responsibilities over the next 5 years.