Senior Software Engineer

Job Title:  Senior Software Engineer
Dept./Group:Engineering
Employment Terms:Contract to hire (3-6 months) for Full-Time
Position reports to:Chief Technology Officer
Number of Direct Reports: 0-3
Compensation:Market salary rate+equity incentives+full benefits upon hiring

Position Summary (Purpose of job):

Kognition is an enterprise software company that develops an interoperability infrastructure for smart buildings and smart cities.  Kognition provides an AI-powered, real-time policy engine for automated operations. We are looking for a full stack senior software engineer to join our dynamic and rapidly growing R&D team.  We look at software development as a craft that requires deliberate practice, curiosity, and passion. If you work hard, have an innovative mindset, and love building great software, we should talk!

As a Senior Software Engineer, you will be a key part of our research and development team that builds our core products. You will design, develop, document, test and debug software applications and services. You will work as part of a high-powered team, in an agile fashion, towards an end goal of making the world smarter, safer and more secure.

Minimum Job Qualifications:

Education/Training 

Bachelors or Masters degree; Computer Science, Engineering, Management Information Systems, or related

Business Experience

5+ years experience in software engineering
Critical Skills 

– Strong application design skills and understanding of enterprise software design patterns

– Thorough understanding and experience working with both functional and object oriented programming languages and paradigms such as Java, C++, and Rust

– Thorough understanding and experience working with scripts and scripting languages such as (e.g. Bash, Python)

– Experience working with containers and container orchestration systems (e.g. Docker, Kubernetes, DC/OS, Nomad)

– Experience developing highly available, highly scalable web applications

– Experience building and integrating RESTful APIs

– Experience with real-time pub/sub, flow, and streaming frameworks (e.g. Kafka, NiFi)

– Experience with NoSQL databases (e.g. MongoDB, Cassandra)

– Experience working with various testing methodologies, including test-driven development (TDD), behavior-driven development (BDD), and unit testing

– Experience with performance-monitoring and tuning of complex applications

– Experience deploying, managing, and configuring applications both on-prem and in-cloud (AWS, Google Cloud, Azure)

– Solid understanding of the Software Development Life Cycle in Agile environment (e.g. Kanban, Scrum)

Desired Skills

– Experience with machine vision (i.e. openCV)

– Experience with web based video processing, video analytics, media compression and encoding (i.e. Gstreamer, ffmpeg)

– Experience working with deep net frameworks (e.g. Tensorflow, Torch, mxnet, gluon)

– Experience working with native code in non-native languages (e.g. JNA, JNI, DllImport)

– Security industry experience

Additional Specialized Knowledge/Skills

– Passion for cutting-edge software design and development

– Highly motivated and self-directed

– Excellent written and oral communication skills

– Keen attention to detail

– Proven analytical, evaluative, and problem-solving abilities

– Ability to effectively prioritize and execute tasks in a high-pressure environment

– Exceptional customer service orientation

– Extensive experience working in a team-oriented, collaborative environment

– Willingness to mentor and train junior developers

– Willingness to support resolution of escalated technical support issues

– Willingness to travel to client locations is preferred

Working Conditions

Position located in our Philadelphia, PA office (between Ivy Ridge and Manayunk). 

WFH flexibility with a focus on in-office availability.

General Office, Travel less than 10%.

To apply, please email your resume to jobs@kognition.ai

(This description is general in nature and is not intended to be an exhaustive list of all responsibilities.  Other duties may be assigned as needed to meet company goals.)