Hacker News new | comments | show | ask | jobs | submit | ionforce's comments login

Tapad | New York, NY (NYC) | Full time (ONSITE)

Tapad is in the "ad tech" space. We use Scala. So if you already know or want to learn about functional programming and big data, hit us up!

http://www.tapad.com/about-us/careers/openings/


How does a guy like that become senior? As a senior one should know that there is a pragmatic balance lost in trying to aim for perfection.

-----


He has his strengths. He produces exceptional quality code (albeit a bit on the spaghetti side) and is good at finding problems in code. He is also 63 and has decades of experience.

-----


It's a challenge for me to imagine "exceptional quality code" with "albeit a bit on the spaghetti side". Can you elaborate?

-----


It covers a lot of corner cases, it is fast, it is robust, and produces good quality data. Only thing is it is hard to navigate.

-----


These developer descriptions sound like they are coming from the "Silicon Valley" tv show.

-----


He can use goto :)

-----


"exceptional quality code (albeit a bit on the spaghetti side)" is an oxymoron.

-----


Yesterday, I was thinking that having the minimal amount of laws should be a goal, so we (the public) should continually audit down all active laws.

Like removing dead code.

We don't need the "citizens cannot keep goats on Tuesdays" type laws. And then we can graduate to the insidious stuff.

-----


Exactly, and that's the value of Uber: forcing society to periodically re-evaluate its laws. As long as it doesn't cause heavy or permanent damage, we can always enforce the laws, kill their initiative and return to the status quo.

-----


Laws should have a defined lifetime, and at the end of that time be reinstated only if they have greater support than the support that initially instated them.

-----


And being able to wrap totally unrelated things into the bill.

-----


Interesting idea... I don't know if I buy it. But I do love auditing...

How does one define "support"?

-----


> benefits of dynamic typing

What, specifically?

-----


The biggest one, IMO is that dynamic languages are simpler and more flexible.

We can usually describe the semantics of a statically typed language based on a simpler dynamic language together with a type system^1. The purpose of the type system is to ensure that certain undesired behaviors do not occur when we execute the program. For example, adding a number to a string, calling non-existing method in an object, and so on. From this point of view, a type system adds static guarantees to your program (certain classes of bugs never happen, the editor has an easier time doing autocomplete, etc) at the cost of increased complexity and learning curve (you need to learn the type system in addition to the runtime semantics) and decreased flexibility (every type system inevitably disallows some programs that would not have resulted in one of the undesired behaviors had you just had faith and ran everything).

I also think it helps to see static typing as a spectrum. For example, most languages only detect division by zero and index-out-of-bounds errors at runtime. Dependently-typed type systems can be used to guarantee that errors like these do not happen at runtime but they are much harder to learn (lots of advanced type theory is involved) and use (you need to do a lot more work to appease the type system)

^1 - A notable exception are language that use type-based name overloading. But if you "desugar" the overloading then the styatic types are usually eraseable at runtime.

-----


Most probably heterogeneous collections (which are covered by sum types), and polymorphism (which is covered by "virtual" inheritance or closures).

-----


Speed, specifically when doing some quick prototyping/exploration.

-----


Why is a dynamic language quicker for prototyping and exploration?

-----


> Perhaps the problem is that static typing is confused with how some languages implement it.

Most of the time what people hate with static languages is type annotations.

What will blow their minds is a language that is both a) type safe and b) easy to type (i.e. what gives dynamic languages their flavor).

Luckily we're getting to a point (Scala) where this is mainstream.

-----


As a Scala user I think the MLs have a leg up on Scala wrt to a & b.

Scala can be quite concise but we do have to be explicit with type signatures, and that only increases as we go up the abstraction ladder.

A strict Haskell with a decent module system, or a modern SML that borrows some nice-to-haves from Haskell and Scala would be my ideal language.

-----


They don't /solve/ problems but they sure as hell help in solving them. No need to throw everything out just because it isn't a silver bullet.

-----


It could be argued that every organism is optimized for breeding.

-----


He means well optimized, not just "did their best". Look at the Panda's difficulties.

-----


Pandas : Rats :: Bubblesort : Timsort

-----


Bubbling is when you cast a defensive spell on an ally to prevent them from incurring physical or magical damage.

-----


What are you trying to imply?

-----


In my experience, having worked at many "tech companies" as well as "square-job companies", there is no great difference in how software engineering types are treated.

-----


I think the implication is, tech company or not, there's a huge gulf between cost center and profit center with regard to how management treats you.

-----


> Maybe Python 4 will be properly compatible with Python 2??

That'd be wild. What do you call something that is even MORE backward compatible? Going retro.

-----

More

Applications are open for YC Summer 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: