Credit Suisse Labs Member of the Technical Staff - Functional Programming or Platform Engineering Specializations #108501
(Please see other job descriptions AI & Machine Learning, Big Data and Data Engineering Machine, Design Strategist, and Social Scientist specializations)
The CS Labs Mission:
Help Credit Suisse explore and build its future. Show the power of small autonomous teams of craftsmen and scientists working together towards clear common goals. Use new tools and new ways of working to build new businesses or refresh old ones in a way that benefits both Credit Suisse as well as society as a whole.
The CS Labs are a new entity within Credit Suisse, a leading global bank. We are in downtown San Francisco. We intend to do phenomenal things, and we have an amazing organization to help us do them.
You are insatiably curious, a disciplined free thinker with an EQ high enough to learn from and teach people who see the world differently to how you do. You understand, but never become a slave to, the nuances of an organization's culture. You have profound mathematical and algorithmic intuition, and are used to mastering anything you set your mind to, fast, whether with or without someone to teach you. At the same time you have a gift for explaining the technical to the non-technically minded. Indeed, you are a natural teacher and diffuser of knowledge, and so your colleagues are constantly learning from you (as you do from them). You are someone who thinks as much about the posing of the problem as the creative solution to it, and while you have a drive towards results and completion, you also practice non-attachment as problems and projects change, evolve … and sometimes die. You work as well within teams as with other teams - people want to work with you. You are open-minded, warm, courteous, confident and optimistic. The power of computing and how it will change the world, but you have remained a humanist, concerned above all with the human condition: your finely-calibrated moral compass shows you the way.
Hacker / Craftsman / Engineer Profile
You dream in code, and code all the time - for work and (ideally) for fun. You have mastered at least one enterprise or systems language (C++, Java, Scala, Go, Clojure, etc.) as well as a scripting language or DSL (Python, R, Ruby, etc.) You use modern development tools like GitHub, git, docker, and you are very comfortable with cloud computing (AWS or GCP). You are practiced in collaborative programming paradigms, like agile or pair programming; are a craftsman about how you treat code and have strong opinions about things like test driven development, design by contract, separation of concerns, object orientation or functional programming. You are able to demonstrate this with public GitHub repos, publications, patents or other projects on which you have worked. You have a strong sense of what constitutes technical debt and how to minimize its accrual. While you compulsively create code that is modular, clear and generally easy for other specialists and scientists to use, you are always mindful of the underlying algorithms - you don't just glue APIs together but can go as deep as necessary when needing to build new functionality.
Potential Deep Areas of Expertise
In addition to the broad engineering background described above, you have one or more deep areas of domain expertise. Specific subject-matter expertise that interests us include (but are not limited to):
You have a passion for a functional/immutable style of programming exemplified by languages such as Haskell, LISP, Caml, Clojure, Scala or equivalent. You have built non-trivial production systems using these languages and have hands-on experience figuring out when functional approaches are appropriate, what works, what doesn't and why. Functional programming is not just a fad for you - but a practical choice which you can explain and rationalize; point to examples of your functional code which demonstrates use of higher-order functions, immutable data structures, pure functions, function composition and demonstrates clarity and scalability. You champion the utilization of the REPL and similar techniques for rapid iteration. Experience in the use of generative testing to validate code quality and use of functional languages in both back-end and front-end contexts is a plus.
DevOps and CI/CD
A polyglot programmer - you can parse most languages, including Java, Go, Ruby, Python, BASH. You know a PERL joke or two, and are comfortable with regular expressions.
You are thoroughly grounded in Unix fundamentals, like: networking, sockets, OS configuration, troubleshooting, file systems, file handles, and hardware. You're a practitioner of the art of the cluster, balancing complexity with intelligent design. You have configured basic services like DNS, SMTP/IMAP and understand the value of having someone else run it. You can figure out technical makeup (in broad strokes) of an operations-oriented product like cloudflare, AWS, Google Apps, just by using the product.
You are skillful in the art of performance engineering, and are acquainted with tracing programs and tools; know what a NMI is; have a practical approach to metrics gathering and data analysis; know how to pick the right graph for the data in question; and are familiar with how to produce dashboards that enable troubleshooting.
You have hacked a system or two (even if only in training) and comprehend the tenets of security engineering. You understand the need for practical applications of security, especially as it pertains to choosing where to stack the most protections - you might even play chess.
You're a release engineer, manufacture process - a fully automated release pipeline gives you joy and freedom.
You cannot abide doing anything more than twice, you would rather automate it.
These buzzwords are familiar: LAMP, MEAN, SQL, NoSQL, RAFT, Anycast, CMDB, CloudNative, Agile, ICMP, TCP, UDP, iptables, systemd, logger, docker, runc, buildpacks, cloudnative, REST, IaaS, PaaS, SaaS, OpenStack, VMWare, Xen, websockets, cloudfoundry, kubernetes, TDD, Gherkin, BDD, CI/CD.
You are well-read on Operations Engineering and Management practices.
You keep computer systems and human systems in balance; are a natural at risk management; comprehend and appreciate the significance of the system; and demonstrate empathy.