Hacker Newsnew | past | comments | ask | show | jobs | submit | bachase's commentslogin

Ripple | Senior Software Engineer, Data | San Francisco, CA | Full-Time | ONSITE | https://ripple.com/

Buzzwords for Ctrl+F: Blockchain, Distributed Systems, Python, Beam, GCP, BigQuery

Ripple provides one frictionless experience to send money globally using the power of blockchain. By joining Ripple’s growing, global network, financial institutions can process their customers’ payments anywhere in the world instantly, reliably and cost-effectively. Banks and payment providers can use the digital asset XRP to further reduce their costs and access new markets.

I'm a staff engineer at Ripple and we are looking for engineers to help grow and improve our data team. We value curiosity and craftsmanship. Strong candidates have experience with distributed systems, distributed data stores and data pipelines in cloud services environment. Interest/experience in distributed ledger technology, finance trading/payments systems is a plus.

For details, see the job posting https://ripple.com/company/careers/all-jobs/#senior-software.... Feel free to reach out to me directly at bchase+hn@ripple.com.


Anyone know how rr compares feature wise with http://undo-software.com?


The features and general approach are quite similar.

There are some significant internal differences. UndoDB relies on code instrumentation but rr does not. Mainly because of that (AFAIK), UndoDB's recording overhead is significantly higher than rr's. On the other hand, UndoDB can handle some cases rr does not, in particular when a recorded task shares memory with another task which is not part of the recording. Also, UndoDB supports ARM/Android and rr does not.


I also starting working on a neural network implementation for my first foray into Julia:

https://github.com/bachase/nnadl-julia.

The notes file on the optimization branch is a very rough outline of things I discovered while iterating on performance. Outside of Iain's great advice and without profiling your code, for a larger sized network, you might benefit from reordering loops for column major storage, or doing normal matrix multiplication (which uses BLAS) followed by a devectorized tanh.

As for the language, I love being able to get something working quickly while writing in a Matlab/"mathy" style. The built in profiler and timer tools are then excellent for zeroing in on hotspots and memory allocations. I'm just amazed at how simply I can drill down from scripting style code to LLVM IR to native asm all in an ijulia notebook browser window.

On the downside, I'm not a fan of having to manually devectorize to avoid temporaries, especially given the success of c++ libraries like Blitz that figure it out for you. I'm sure Julia will improve in this area as it matures.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: