Cadent: Senior Front-End Software Engineer at Cadent (Philadelphia, PA) (Philadelphia, PA)

Posted: Jan 8, 2019

Cadent powers the evolution of TV brand advertising. We provide marketers, agencies, operators, and media owners with data-driven solutions for buying and selling TV advertising. By connecting brands with opportunities across national inventory sourcescable, broadcast, and digital mediaour technology improves efficiencies and boosts the results of linear, addressable, and cross-screen campaigns.

What are we looking for

We're looking people who want to step up and be leaders in their respective teams and help raise the bar for what constitutes quality interface development. In addition, we're looking for individuals who want to make the next step in their career and be accountable for delivering interfaces that prioritize usability, scaleability, and maintainability.

What you'll be doing

You'll be primarily focused on engineering new interfaces inside of a small agile team for internal and external customers. You'll be involved in helping establish and communicate front-end technical feasibility with the aligned design resources and will be expected to properly estimate scope, delivery time, and complexity. Along with that, you'll be responsible for working with your platform partners on API data contracts, to ensure that data is sent back and fourth in the simplest and most efficient manner.

You'll also be working with extremely talented people from all parts of the globe; Philadelphia, New York City, San Jose, Virginia, Washington DC, Romania, and India.

Naturally, with any engineering role, the above isn't the complete picture. You will also play a significant role in helping the company continue to create, refine and then subsequently enforce our interface development standards on a global level.

The role is really what you make of it; we encourage all ideas to make things better so if you have something you're really passionate about, you can own it and drive it forward; we got your back.

What you'll be working with

You'll be working with the latest stuff; React, Redux, Sass, CSS, CSSModules, PostCSS, Storybook, Styleguidist, REST, GraphQL, Webpack, GitHub, Jenkins, Docker, NodeJS, NPM, and AWS. You'll also be working closely with our Design team, so you'll be expected to learn tools such as Sketch and InVision to comment, interpret and execute the product vision.

You'll be provided a MacBook Pro right out of the gates and on top of that, we're very keen on enforcing BYO-IDE (Bring Your Own Interface Development Environment). If you like Sublime Text, go nuts. If you're a VSCode person, by all means keep dominating on that. The idea is that whatever you need to make your development life a little easier, we'll make sure we facilitate it.

Characteristics

You've read the overview; what you'll be doing, what you'll be working with, etc... but do your current skill sets line up? Take a look at some of the expectations of our mid-level to senior front-end engineers to see if it sounds like you.

You have sound fundamentals in all aspects of interface development
    • You have moderate to signficant experience with a JavaScript famework / library such as React 16+, Angular 2+, Vue. You've also paied your dues with jQuery and vow never to return to post-facto dom manipulation.
    • You know what a constructor is, prototypal inheritance, event delegation and can explain them in a simple way. You can have a easy conversation about the nuances of variable declarations inside of closures and can easily explain scope hoisting.
    • You don't see patterns as bad thing; you recognize them as someone that can help scale an app and you work every day to ensure that your making them simple and more elegant.
    • You can style just about anything; You're familiar with pre-processers like LESS and Sass and can use either; You know the proper times to use pseudo-selectors, how to transform smomething across the page, rotate, etc... and you have a few tricks up your seleve. You can configure variables,
    • You know ES6 and have work with transpilers like Babel; you can esaily communicate the differences in JavaScript stage proposals to others and implement them in a risk adverse approach.
    • You have significant Git experience and prefer to use the CLI over any GUI. You can rebase, merge, branch, and cherry-pick in your sleep and communicate what each of them do.
    • You can write markdown. A lot of markdown. And by markdown, we mean serious technical documentation.


CSS is your second language
    • You can look at any design and immediatley pin-point where the complex areas are and what it's going to take to style them. You can then use that to have a better conversation during planning on the level of complexity and time that the feature might take.
    • You realize that a large part of your day is based around functionality, but you recognize that styleing cannot be ignored and you put extra emphasis on it.
    • You ensure that your thinking about patterns, themes, contrasts etc... when you go about building your styles and then growing them. You refuse to scale anything without a variable and you have a full technical understanding about attribute priority.
    • You want to work with PostCSS.


You're part engineer \ part designer
    • You have a good design sensibility and you know what works and what doesn't work. You have your pet peeves about some of the things that design expects front-end developers to write and you're not afraid to speak up and mention those things.
    • You believe in the feedback loop. You have your design team on speed dial to ensure that you can ask them any question or clarify a design instantaneously to ensure that you're getting it right.
    • You're not afraid to push back and demand compromises between you and your designers. You're on a tight deadline and expected to deliver and you're always looking for ways to make sure you're executing on the vision without over engineering a solution too much. You're also not afraid to suggest some improvements to designs; after all, you're the one implementing them so why shouldn't you get a say?
    • You refuse to code anything without some sort of guidance and direction from design. You hate useless re-work and understand the implications of developing without designs


Always ready to step your game up
    • You love articles; You have your various outlets that you subscribe to get the latest information from. When other people bust out their phone too look at Instagram, you're scrolling through Medium or Panda to try to get a better bead on who's trying to re-invent the game.
    • You're always looking for ways to do less. You recognize that there's a lot to keep track of so you constantly have your eyes peeled on how to reduce your workload the smart way; by testing and using tools that automate the boring stuff so you can focus on the cool stuff
    • You're not afraid of completely burning something and starting over. You know that things can a business on a dime and that you cannot get attached to your work and starting over sometimes is just the best thing to do. You also know when to throw up the white flag on something and ask for help.


You're a good communicator
    • You live for analogies and you use them at nauseam to help communicate complicated technical implementation concepts; cars, trucks, animals, coffee cups, cell phones, etc... all of those are fair game when you're trying to get your point across.
    • You know how to illustrate time and complexity in other real world scenarios and can effectively determine how long things are going to take. You know the complexity, you can identify the skills to accomplish those and then you can fill in the blanks.
    • You're thoughtful in your approach. You know that everybody you work with has a certain way that they like to do things, so you modify your approach to ensure that you get the best results.
    • You're not afraid of conflict, but you don't go seeking it out.
    • You tend to say things like "we'll look into it" or "i'll investigate" rather than "no, can't be done" or "that's impossible". You're also not afraid to raise your hand and proclaim that you have no idea how to go about something... as long as you follow that up with "However, I'll figure it out"
    • You have architectural ideas, but haven't had the voice to speak up. You know how to do certain things and you can see simple mistakes being made, but up to this point you haven't had the platform to be heard. You are eagerly waiting to help guide your fellow engineers in coming to the best solution; not just any solution.


You deliver more than UPS
    • Talk is cheap. You back up all of your estimatations, updates, stories with cold hard results. You undestand that sending a message with a completed feature is far better than communicating that something is in progress.
    • You're not afraid to show partially completed work, because after all, it show's progress and progress is good.
    • You aren't afraid to step up and complete that feature even if it means a few extra hours. You're a team player and you know that something is going to enable the rest of the team so you get it done.
    • You understand that engineering workload ebbs and flows and you're not afraid to pick up and get your hands dirty in other areas, even if that means wearing a few different hats to help the team out.


Hopefully, what you just read reminds you of yourself. If that matches up, we look forward to having you on the team because you're just what we're looking for!

More Information

Source: Stack Overflow


More Opportunities: