lylepstein
Tatari combines old-school TV advertising with modern tooling and analysis. We build software to automate and improve our media buying operations, and we develop novel statistical analyses to make TV advertising as measurable as digital advertising for our clients, displayed via a beautiful dashboard. Lots of data, wrangled via Python and TypeScript.
We're currently ~35 people, profitable, and growing our business like crazy. We're building out our Toronto office in addition to our existing San Francisco and Santa Monica teams, due in no small part because it's a great city (I moved back here specifically to start this office because I love it here, even the snowy winters).
We have roles open for senior Backend and Frontend engineers, as well as some more jack-of-all-trades positions for a client-facing engineer, and an internal tools engineer.
More details at https://www.tatari.tv/careers. Please email [email protected] directly with your resume or questions!
Tatari combines old-school TV advertising with modern tooling and advanced analytics. We build software to automate and improve our media buying operations with a relentless drive for efficiency, and we automate novel statistical analysis to make TV advertising as measurable as digital advertising for our clients, all displayed via beautiful dashboards.
We're a relatively new startup, but we're profitable and growing our business like crazy. We have roles open for senior Backend and Frontend engineers, as well as some more jack-of-all-trades positions for a client-facing engineer, and an internal tools engineer.
More details at https://www.tatari.tv/jobs. Please email [email protected] directly with your resume or questions!
Tatari combines old-school TV advertising with modern tooling and advanced analytics. We build software to automate and improve our media buying operations with a relentless drive for efficiency, and we automate novel statistical analysis to make TV advertising as measurable as digital advertising for our clients, all displayed via beautiful dashboards.
We're a relatively new startup, but we're profitable and growing our business like crazy. We have roles open for senior Backend and Frontend engineers, as well as some more jack-of-all-trades positions for Sales and Tools engineers.
More details at https://www.tatari.tv/jobs. Please email [email protected] directly with your resume or questions!
Tatari combines old-school TV advertising with modern tooling and advanced analytics. We build software to automate and improve our media buying operations with a relentless drive for efficiency, and we automate novel statistical analysis to make TV advertising as measurable as digital advertising for our clients, all displayed via beautiful dashboards.
We're a relatively new startup, but we're profitable and growing our business like crazy. We have roles open for senior Backend and Frontend engineers, as well as some more jack-of-all-trades positions for Sales and Tools engineers.
More details at https://www.tatari.tv/jobs. Please email [email protected] directly with your resume or questions!
Tatari combines old-school TV advertising with modern tooling and advanced analytics. We build software to automate and improve our media buying operations with a relentless drive for efficiency, and we automate novel statistical analysis to make TV advertising as measurable as digital advertising for our clients, all displayed via beautiful dashboards.
We're a relatively new startup, but we're profitable and growing our business like crazy. We have roles open for senior Backend and Frontend engineers, as well as some more jack-of-all-trades positions for Sales and Tools engineers.
More details at https://www.tatari.tv/jobs. Please email [email protected] directly with your resume or questions!
If you believe the size argument, and care more about short term revenue over developer productivity or happiness, it makes sense, I guess.
[1] https://acss.io/frequently-asked-questions.html#what-are-the...
... or at least, that was the argument. In practice, most teams didn't adopt it unless mandated from above; because it sucks to use, has an infinitesimal decrease in individual page load time, and the bandwidth savings certainly don't outweigh the lost developer time.
But hey, all you gotta do is convince some VP that your niche approach is the right one, and you'll get some adoption in a large company like Yahoo.
export type INCREMENT_COUNTER = 'App/INCREMENT_COUNTER';
export const INCREMENT_COUNTER : INCREMENT_COUNTER = 'App/INCREMENT_COUNTER';
These aren't necessary, you can use those type strings directly: export interface IncrementCounterAction = {
type: 'App/INCREMENT_COUNTER',
by: number
};
In vanilla, untyped Redux the constants are a good idea because they
give you some safety and IDE-ability. With Typescript they're just
a waste of code, since TS is going to check those type strings for you.
Cut out the middleman!So a bit of an inside joke I guess, but most people familiar with regexes will probably have heard of PCRE, so it's not a terribly obscure reference. I liked it :)
1. You still have to worry about your systems, as Heroku has its own outages, not to mention the other pieces of your infrastructure like DBs, queues, etc.
2. Architecture flexibility goes way down, as vertical scaling isn't a real option on Heroku (and a surprising number of problems can be easily solved in the short term by just throwing big iron at them).
3. The premium you pay on the hardware you're using starts to add up, especially when you're in the realm of "let's solve this problem in the short term by throwing machines at it."
Of course, that's not to say you can't use a hybrid approach of, say AWS + Heroku to solve some of these, but it's a bigger hurdle to clear if you've outsourced all your systems work to Heroku from the beginning. You suddenly find yourself having to figure this stuff out at some level of scale, vs growing it organically and learning as you go.
figure figurecaption {
transition: all 0.4s;
transform: translateY(100%);
}
figure:hover figurecaption { transform: none; }
Will get you the effect you want.HTML5 media is my favorite example of this: mobile devices will actually straight up lie to you when you call certain methods.
If you're making even moderate use of any HTML5 features, you're going to end up doing user agent sniffing.
You really need to plan ahead carefully if you're using the appcache, which I think changes the definition from "a nice tool, with some quirks" to "a complicated feature that you have to understand completely before implementing."
With that in mind, I think bootup.js is an interesting alternative if you can work around its other deficiencies.
There's also the amortization to consider. Over a lifetime I may lose 50% of what I put in to insurance -- but I don't have 50% of what I'd put into it over my lifetime available to me now if I have a large medical bill to pay.