Senior Fullstack Developer
Posted by Matthew
EST/CST Timezone (Remote)
Senior Fullstack Engineer
Salary/Benefits: $90k-$130k, Equity Options, Health, Dental, Vision
Location: Remote, East Coast or Central Timezones
Position Type: Full time hire or contract to hire per applicant preference
Provides Visa: No
About the job
UpContent is growing! We’ve found our market and we’re ready to take our platform to the next level. To help us get there, we’re looking for an empathetic, experienced, and growth-oriented Senior Fullstack Engineer to take a leading role in improving our existing Python backend and Vue frontend. If you’re an eager self-starter, excellent communicator, and passionate relationship-builder, you just might be our person.
We help marketing, HR, and sales professionals deepen relationships and build trust with their audiences by serving as their “air traffic control” for third-party content. Our platform, UpContent, helps users discover, collaborate on, and distribute this content for use on social media, an email newsletter, a website, or even their company’s digital signage systems. Our integrations and partnerships with other content marketing tools like Hootsuite, Buffer, HubSpot, Mailchimp, Getty, Wix, and more, make curation even more streamlined and accessible.
Our values of trust and relationships carry through to how we “get things done”. We believe you work best when well-rested and living a whole life and while we require some time flexibility as a startup we believe that goes both ways and offer flexible hours, unlimited vacation (3-5 weeks suggested), and remote work. About the Role The major projects we’re looking to complete over the next year are heavily focused on our web crawling, search indexing, and machine learning and data science capabilities, along with significant performance, scaling, and UX improvements. We’ll also be continuing to ship features and new integrations and expect these positions will help us increase our speed of delivering features with a large degree of openness to how.
Our backend stack is primarily Python with some other languages on select services, deployed to containers and serverless functions in AWS. Our main app frontend is in Vue with other frameworks in use for secondary apps.
We are looking for someone we can hand a project to and handle said project independently, as part of a team, or as a mentor to the team as the needs of the business dictate. This role is focused on someone that can work across systems and make connections between those systems and with some breadth but we are realistic that we can’t expect one person to be experienced with all technologies or patterns we use.
About the Team
UpContent is currently made up of 6 people. The Engineering team has 3 people: the Engineering manager, a UX Engineer, and 1 Backend Engineers. We have an additional full stack engineering contractor we may bring full-time on as well.
You enjoy a high degree of autonomy and responsibility in the technical direction of the backend architecture. You thrive working both independently and as part of a team. You’re able to see the big picture while managing the small details that make the big stuff possible. You are comfortable taking initiative and finding new, creative ways to solve problems or delight the customer. You’re always learning and growing and experimenting with new tools and processes. You appreciate constructive feedback and aren’t afraid to ask questions. You are kind and empathetic. Excited about being part of a growing company and having an “owner mentality” that cares about the growth of the business Solid communicators and be able to manage work independently Self-motivated and responsive to the needs of the team
- Either fluent in python or have practice picking up multiple new languages
- At least one of the following should describe you
- 5+ Years experience including, Python + SPA based frontend experience or Vue + Similar backend language
- 3 + Years with experience with our exact stack (Vue, Python, AWS), this will likely not be senior right off the bat but the hope is that you will grow to senior level in your first year or two
- 7+ years and experience with multiple languages with at least 2 years each on frontend & backend
- At least 1 year of experience with a modern frontend framework such as Vue, React, or Angular and a modern state management library such as VueX, Redux, MobX, or RX.js
- Experience with at 1 of the following and interest in picking up the rest quickly
- Data science/Machine Learning
- Web scraping
- Containers and or Serverless deployment and architecture
- Pub/sub and/or queue based architectures
- Infrastructure as code
- Motivated to take a leading role in how we scale our architecture and improve our algorithms.
- Comfortable coming into an unfamiliar large code base with technical debt (5+ year old product) and delivering features while working with the team on strategies pay that down prioritizing the biggest wins in maintainability, scalability, and stability
- Comfortable working with integration partners and customers on occasion
- Able to effectively mentor other engineers on coding practices
- Able to independently make architectural decisions including doing necessary research as well as the ability to independently learn any new technologies needed to implement these decisions
- You have experience in working in a startup environment.
- You aren’t afraid to experiment with outside-of-the-box ideas and strategies.
- You have an understanding, and appreciation, of the problem we are working to solve.
- Design experience
- Comfortable mentoring and onboarding developers as we grow
We view the interview process as a collaborative discovery process where we work together to determine whether we are a good match for each other. Questions are not only welcomed but encouraged, at all phases of the process.
We favor a higher number of shorter rounds since we’re remote and that can be easier for candidates’ work schedules but keep total time commitment under 8 hours with an optional additional hour to meet the team. If you have specific time constraints and can keep answers concise and focused feel free to ask about shorter interview time blocks but most candidates do use the full time.
At senior level we tend to let candidates guide interviews and at experienced or junior level we tend to guide candidates through the process more.
- Application: Apply with a resume and a sentence or two, or a short paragraph, about what in the job description made you want to apply.
Round 1 (1.5 hr, 8 candidates max)
- Video or Phone Interview (1hr): We try to get to know you a little, clarify your resume/experience, talk about experience levels and talk about rough pay range numbers. Conducted by the Engineering Director.
Round 2 (1-2 hr, 5 candidates max)
- Video Interview: Mix of technical and non-technical questions. Conducted by the Engineering Director.
Round 3 (1.5-5 hours, 3 candidates max)
- Code Assignment (2-3 hours): Depending on experience level and how the second interview went as well as existing portfolio of work we will potentially assign an “on your own time” code assignment. Our opinion is that while code assignments struggle with assessment of entry level and super senior folks they often excel for mid-level folks and for senior folks with less even coverage of senior level topics. It will be in Vue/Python with a premade environment. We value both existing knowledge of this stack or ability and eagerness to learn and think that it is fair to expect more in that realm from folks looking to transition stacks or folks still not having a wide enough breadth of knowledge for us to assess in interviewing alone.
- Video Interview (1.5-2 hr): You will be meeting with the Engineering Director to do some pair programming and further conversation. At the end of the interview, we’ll try to narrow down the compensation range further - to continue ensuring there is alignment.
Round 4 (1-2hr, 2 candidates max)
- Phone Chat with CEO (1hr): Chat with our CEO. Usually, talk about growth and just get to know each other to jointly evaluate if you’ll work well together. While we’ll touch on things like an exit strategy, time frames, and other similar topics prior, this is a good time to dig into any hard business or financial numbers you want to know.
- (Optional) Meet the Team (1hr): If you wish to meet the team you will have the opportunity to do so at this stage. The Engineering director will join for the first half to make introductions and will leave for the second half so you can ask any questions of the team without worrying that their manager/your interviewer is in the room.
Salary Formula and Salary Negotiation
At UpContent in order to reduce bias, and set fair salaries, we use set salary bands that are visible to applicants starting in the first interview. We begin narrowing down the salary range a bit in the first interview and give a final offer at the end of the process.
There may be deviations from the bands either up or down for certain skill gaps or additional value adds but these will be explicitly quantified and future candidates will use the same values for the adjustments. For skills gaps we will help you select and pay for training and some sort of mechanism to prove that you have “acquired” that skill to remove said down adjustment with an expected time range being between 3 and 12 months.
Using a salary formula strongly limits our ability to negotiate. We don’t penalize you for trying, we’re open to the possibility we got something wrong either in our assessment or in our salary formula, but we’re unlikely to to up the offer just because you’re talking to other companies.
Please note that the salary range posted includes some buffer on both sides relative to our senior salary band in order to handle hiring non-senior or lead level devs even though our target level of experience is senior we value finding the right person over the right title.
Engineering Levels at UpContent
All engineering levels should ALWAYS be asking for advice and second opinions from their peers. All engineering levels should ALWAYS be doing code reviews for all major features. All engineering levels should be able to take feedback from engineers of any other level. Being senior doesn’t mean you’re always right, it means you have the experience to safely swim out to more unknown waters and take larger chunks of work with less dependency.
Knows coding basics
- No professional experience needed
- Should be able to write code with supervision/mentorship
- Early on even simple changes should be code reviewed
- May have questions that they feel are probably silly, but still valuable outside perspective
- Should be able to write quality code independently without supervision
- Should be able to have good input into larger architectural decisions and will sometimes be expected to offer a suggested architecture but not expected to be making architecture decisions independently
- Should be able to advise juniors
- Should be able to give peer advice to other engineers in general
- Should be able to work with business stakeholders Should be able to work on feature scoped work independently without defined requirements
- Should be able to meaningfully participate in production maintenance and handle most minor issues without escalation
- Should be able to go into large code bases and figure out how it works. Expected that there will be lot’s of questions but those questions will be targeted and specific
- Should be able to write high quality code consistently and independently in a timely and reliable manner
- Should have a level of quality and consistency that, in time sensitive scenarios, is safe to code review after rather than before release
- Should be able to work independently with business stakeholders
- Should be able to collaborate as a core contributor on overall architecture including service architecture and often act independently on architecture Should be able to mentor Junior and Experienced devs on coding
- Should be able to advise Experienced Engineers on architecture
- Should be able to lead work on project/iteration scoped work independently without defined requirements
- Should be able to own maintenance of production services without supervision or escalation though they may need a second set of eyes
- Should be able to do initiative and product scoped work independently without defined requirements
- Should be able to go into large platform level code bases and figure out how it works. Expected that there will be a few questions but those questions will be targeted and specific
- All senior responsibilities
- Should be able to lead architecture discussions or act independently on architecture while communicating architecture decisions to the team in a way that allows feedback
- Should be able to mentor Junior and Experienced devs on coding and advise Seniors
- Should be able to mentor Senior and Experienced Engineers on architecture Should be able to mentor Senior and Experienced Engineers on mentorship, leadership, and communication
- Should be able to lead a initiative and product scoped work independently without defined requirements
- Not that we’d ask it but at this level you should be able to go into almost any code base and just figure shit out and continue business operations. For instance our engineering director came in at this level and had two weeks to onboard and then had to solo maintain the code base. In practice we’ll give you the resources you need.