CareersBlogWork with us
Careers at Krum It's about more than code. Find your place with others committed to developing opportunity and purpose.

Job Description

An Applications Engineer is more than just a front-end or backend developer. They understand the systems that drive functional and efficient applications and its data, and can complement existing systems. The experience of developing, deploying, and operating the application is important as well. They’re problem solvers that seek out ways to build better software.

Senior Engineers help drive the development of personnel as well as the technology being developed. They can develop software, but can also help other developers.

  • Lead the development of mid-scale and highly-available web-delivered applications and frameworks.
  • Develop software solutions, in accordance with the systems’ workflow and processes, by studying requirements and communicating with users.
  • Document solutions by developing system architecture, process flowcharts, and code comments.
  • Advocate component reusability while building complex systems. Modernize existing architectures by taking costs and scalability into account.
  • Develop and Deliver container-based or serverless microservice architectures that are heavy on content delivery and data management.
  • Implementing systems that solve integration challenges with existing infrastructure (potentially unruly and on-premise/off-premise) is paramount.
  • Drive collaboration between ITOps and AppDev teams and mentor other personnel
  • Develop application architecture through all key pillars (e.g. storage, availability)
  • Drive software development and automation best practices throughout the SDLC

Education Requirements

Technical expertise and project management expertise must be documented in the form of academic degrees or other documented credentials

  • Master’s degree in Computer Science or Computer Engineering
  • OR equivalent experience

Special Skills

We provide a list of technologies as a reference, but we are ultimately looking for traits and skills that are complementary to our team and the markets we serve. Candidates should be able to communicate thoughtfully about the following (or related) technologies and have solid technical fundamentals that enable them to adopt new capabilities with ease.

Proficiency is desired in the following technical areas

  • Serverless or Container-based Microservice Architecture and Orchestration
  • Continuous Integration / Deployment / Delivery
  • Enterprise Architecture, System Integration, APIs, and Web Application development
  • NATS, Redis, and other queues, buses, and caches
  • Familiarity with Platform as a service (PaaS) (AWS/Azure/Google/Rancher/etc)
  • Document and Relational Databases / SQL, NoSQL
  • Software development using Golang / Python / NodeJS / Rust
  • Modern web application development
  • Development experience leveraging the browser platform, web APIs, and enforcing strong core software development principles is a plus
  • Familiarity with web concepts such as JAMstack or static/serverless a plus
  • Principles of Clean Architecture
  • Plus: Experience with “legacy” systems, languages, or frameworks and their rearchitecture
  • Plus: Experience with Web Assembly