DialogTech provides the leading AI-driven conversation intelligence platform for marketers at businesses that value inbound phone calls. When consumers call, DialogTech turns those conversations into actionable insights businesses use to improve marketing ROI, increase sales conversions, and deliver more personalized customer experiences, both online and over the phone. Recognized as the leader and pioneer in call analytics since 2007, DialogTech is the trusted conversation intelligence platform for many of the world's most successful brands and agencies.
DialogTech is a venture funded, growth stage, digital marketing technology company with over 4,000 customers and 200 employees. Since the beginning of 2014, DialogTech has experienced over 300% growth in its enterprise customer base and doubled its average customer size.
As a Senior Software Engineer focused on Real-time Communications, you will spend much of your time developing powerful voice communications apps using the open source Adhearsion Ruby application framework. Your work will be at times Ruby-centric, while at other times network and Linux-focused to make sure that services are talking to each other. You will build dynamic voice applications that enable our customers to control the user experience of voice communications in real-time using our webhook API. Your solutions will often be multi-threaded and will scale to handle thousands of concurrent conversations.
While building scalable Ruby applications you will also develop valuable experience with real-time voice communications, as you learn of the underlying VoIP protocols that your high-level Ruby business logic controls. You will gain experience with the open source Asterisk telephony PBX that runs under Adhearsion. And you will also learn how to analyze the underlying VoIP network traffic that you control to ensure that it is behaving as you desire. This is a great opportunity for a hard-core, full stack developer!
Essential Duties and Responsibilities
- Create interactive voice applications using the Adhearsion framework
- Develop highly-performant, multi-threaded Ruby code using JRuby
- Write modular, reusable, testable code
- Receive and apply collaborative feedback in peer code reviews
- Design and communicate best practices for software engineering in design reviews
- Use strong analytical and diagnostic skills to solve problems
Required Skills & Qualifications
- 5+ years of software development experience.
- 2+ years of Ruby development experience (extensive experience in another language may be substituted)
- Experience with a unit testing framework such as RSpec or Test::Unit
- Comfortable with the concepts required to construct multi-threaded code
- Comfortable working in a Linux environment with various CLI tools
- Comfortable working with some of our other services, written in PHP
- Knowledge of object-oriented programming and design patterns
- Professional experience working as part of a team committed to hitting deadlines
- Experience with an agile methodology such as XP, Scrum, or Kanban
- Experience with a modern VCS – we use git
- BS in Computer Science or equivalent experience
- A link in your application to a coding project that you participated in. This may be on GitHub, BitBucket or elsewhere.
- Experience with test-driven development
- Proficiency with relational and NoSQL databases – we use MySQL and ElasticSearch
- Experience with an application framework such as Rails or Sinatra
- Experience optimizing services that are responsible for high traffic volume
- Experience with AWS Auto Scaling Groups
- Experience with JRuby and/or the JVM
- Experience with packet capture and analysis
- Familiarity with real-time communications protocols such as MRCP, SIP, SDP or RTP
Join us at one of the 101 Best and Brightest Places to Work in Chicago and nationally, 10 times running, Chicago Tribune's Top 100 Workplaces company!
We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.