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

Magnetic | ONSITE | New York, NY | Senior Python/Platform Developer

Magnetic's media and merchandising platform tracks user behavior across hundreds of thousands of websites, hundreds of millions of users, and many billions of events per day. Every day we're pushing the boundaries of what can be done with Python and PyPy, building microservices that increase throughput and reduce latency in our real-time system. If you have Python skills and want to take them to the next level, we want to hear from you!

Our engineering culture is oriented towards optimizing time to deliver new features. New developers ship code to production on day one, aided by peer code review, thorough automated testing, continuous integration, and one click deployments. We collaborate frequently, at whiteboards and informal pairing sessions. We value diversity of opinions and backgrounds, and encourage everyone to contribute ideas, ask questions, and push each other to achieve more each day than before.

Apply online now: http://grnh.se/h2igfl1

Other openings: http://www.magnetic.com/about/careers/

Magnetic does not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.


Magnetic: New York, San Mateo, Ann Arbor, London (all ONSITE, VISA sponsorship available)

Are you someone who has a passion for software craftsmanship? Do you prefer Agile processes, and care about regularly shipping well-crafted code to your users? Does developing software on collaborative team sound like the ideal next step in your personal journey? If so, then Magnetic is looking for you! You can read about some of what we do at our tech blog: http://tech.magnetic.com/.

Magnetic builds a marketing platform for enterprises, brands and agencies. Our prospecting, remarketing, and merchandising solutions help marketers find, keep and bring back customers across channels and devices. These solutions are powered by our unique data including purchase intent and behavioral insights.

We do this with a (micro) services (oriented) architecture (choose your favorite buzzwords) using PyPy, GoLang, Java, and Scala; we use Kafka, HBase, MongoDB, Samza, and Spark, among other open source technologies. Each of our development teams is cross-functional and largely self-directed, so if you want to make an impact, we've got a role for you.

Apply online at http://grnh.se/ng1cb0. If you don't see a job that looks right, drop us a line anyway -- we'll make sure your application gets to the right person.


Magnetic: New York, San Mateo, Ann Arbor, London (all ONSITE, VISA sponsorship available)

Are you someone who has a passion for software craftsmanship? Do you prefer Agile processes, and care about regularly shipping well-crafted code to your users? Does developing software on collaborative team sound like the ideal next step in your personal journey? If so, then Magnetic is looking for you! You can read about some of what we do at our tech blog: http://tech.magnetic.com/.

Magnetic builds a marketing platform for enterprises, brands and agencies. Our prospecting, remarketing, and merchandising solutions help marketers find, keep and bring back customers across channels and devices. These solutions are powered by our unique data including purchase intent and behavioral insights.

We do this with a (micro) services (oriented) architecture (choose your favorite buzzwords) using PyPy, GoLang, Java, and Scala; we use Kafka, HBase, MongoDB, Samza, and Spark, among other open source technologies. Each of our development teams is cross-functional and largely self-directed, so if you want to make an impact, we've got a role for you.

Apply online at http://grnh.se/ng1cb0. If you don't see a job that looks right, drop us a line anyway -- we'll make sure your application gets to the right person.


Magnetic: New York, San Mateo, Ann Arbor, London (all ONSITE, VISA sponsorship available)

Are you someone who has a passion for software craftsmanship? Do you prefer Agile processes, and care about regularly shipping well-crafted code to your users? Does developing software on collaborative team sound like the ideal next step in your personal journey? If so, then Magnetic is looking for you! You can read about some of what we do at our tech blog: http://tech.magnetic.com/.

Magnetic builds a marketing platform for enterprises, brands and agencies. Our prospecting, remarketing, and merchandising solutions help marketers find, keep and bring back customers across channels and devices. These solutions are powered by our unique data including purchase intent and behavioral insights.

We do this with a (micro) services (oriented) architecture (choose your favorite buzzwords) using PyPy, GoLang, Java, and Scala; we use Kafka, HBase, MongoDB, Samza, and Spark, among other open source technologies. Each of our development teams is cross-functional and largely self-directed, so if you want to make an impact, we've got a role for you.

Apply online at http://grnh.se/ng1cb0. If you don't see a job that looks right, drop us a line anyway -- we'll make sure your application gets to the right person.


Did you know "Agile" is kinda dead? Is it seriously practiced over there in your team?


Does anyone know who the two CAs this post mentions are?


Yes, I do. :^)


As I mentioned in a comment on Jaime's response (https://wrongsideofmemphis.wordpress.com/2015/05/08/optimise...), we actually do quite a bit more than this in our production code. The blog post here is meant to demonstrate the point, not to show our exact production code.

In particular, I wanted all 3 examples to use nearly identical inside the filter function, to isolate the differences just between the ways of accessing data in the benchmark results, and to show that closures are an easy way to gain some performance in hot spots (in CPython at least).


I get that you wanted to simplify the example, but the example you've written really just doesn't make much sense, so it's hard to understand your point.

The API in the example is really bad. Accepting a dictionary, only to require a specific key in the dictionary, is the worst of both worlds. But then if you use .get to access the dictionary body instead of the attribute access, you'll take on additional performance penalties, and other solutions will start to compete.


Hi, I'm the author of the post. Our 95% latency is just shy of 10ms, and max latency around 100ms. Our monitoring tool pre-calculates the percentiles, so I don't have 99% or 99.99%, but my guess is that they're under or around 50ms. Too much more than that and we'd be hearing from our partners about timeout rates. We haven't thoroughly profiled the difference between "most" and "all" in terms of latency sources, but I'd guess that GC pauses account for some of it, and some requests are simply much more expensive for us to process than others.


Hi, work for one of the partners. From what I can tell, your account manager should be able to get you this info, including 99 percentile, if you are interested. This is for round trip from our point of view of course.

Spot checking, you've done better than you think :)

Exciting to see python implementation doing this!


That's always good to hear :) Drop me a line if you want to get in touch.


Nice one. Yes the GC pauses are usually the root cause of higher p99+ latency. Anyways, the 10ms-100ms range is pretty amazing by itself. With such a huge throughput it is hard to measure latency accurately you are kind of forced to use sampling, but it can be a good representation of reality still.


Magnetic - Lead Python Developer | New York (Manhattan) | No Remote

Magnetic is tackling the high-volume, low-latency world of real-time online ad auctions, and we need your help. We measure traffic in billions of events per day across six data centers, and we’re only just getting started. Do you dream about building distributed systems? Are you excited by shaving fractions of a millisecond off of your code’s run time? If so, we want to hear from you.

We're looking for a skilled Python lead to manage all of our real-time platform services and developers. The role is part management, part technical leadership (architecture and design), and part individual contributor.

Apply Online: https://hire.jobvite.com/j?cj=oe4i0fwk&s=Hacker_News


Thanks, hadn't seen this.


Huh -- CPython 2.x doesn't let you create an xrange with values past 263-1. CPython 3.x does.


Even 63-bit integers aren't (all) representable in IEEE double floating point values (that Python uses) which have a 53 bits mantissa.

For example, int(float(10¹⁸ - 1)) != 10¹⁸ - 1, but xrange(1, 10¹⁸) is perfectly valid (even in Python 2).

edit: how do I type two consecutive asterisks on Hacker News? Backslash doesn't seem to work as an escape character.


If you put two spaces at the beginning of a line, you'll get a monospaced "literal" mode.

  For example, int(float(10**18 - 1)) != 10**18 - 1,
  but xrange(1, 10**18) is perfectly valid (even in Python 2).


\\\\

Edit: failure. That's two stymied people :(


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

Search: