Be where your talents are needed most. We constantly move from project to project, solving problems and moving on to the next. In a small team we wear many hats, but are rarely bored.
Build robust enterprise applications. We design and build applications to enable the success of our clients. Our applications enable the trading of millions of dollars in client accounts. Accurately. Optimally. Consistently.
Apply your knowledge of a problem domain. Understand where the industry is going? Think you can get there first? We encourage you to build features into your application that solve problems that will exist in the future, but that your users have yet to consider. Prove how well you organize your time.
Communicate your ideas. You have direct access to end users and decision makers who are looking for fresh perspectives. Help us map out the future.
Improve the scalability and robustness of our software environment. You might be using Python/Django, Java, Wildfly, Docker, Mesos, Zookeeper, Spark, Cassandra, MySQL, MS SQLServer and Ansible to deliver application services in a high uptime environment. You'll reimagine existing projects in a modern infrastructure.
Learn. Technology is constantly evolving. So should you.
You'll bring with you:
A bachelor's degree in Computer Science or related technical discipline or equivalent technical work experience. Five or more years of professional development experience.
A proactive, solution-oriented outlook. We want to identify and solve problems before they manifest in operational breaks. You thrive in an environment where you find and correct issues before your users see them. There is always something that can be improved.
Experience with full-stack enterprise applications in Python or Java. Significant experience in object oriented design applied to building high quality, scalable applications that evolve over time. Experience in other object oriented languages is a plus.
Ability to think ahead, applying your analytical skills to proactively design for long term solutions. Implement such solutions in phases so that your application is constantly evolving to better fit its objective.
Drive for an optimal solution. You understand that a first implementation only helps you understand the problem. The second, third and fourth refactoring optimize and simplify the solution to be easier to understand and maintain, while solving the problem as elegantly as possible within the project time constraints.
Strong debugging ability. You relish the challenge of squashing a hard to find bug. Bonus points when it hasn't yet been noticed by anyone but you.
Belief in the power of unit testing to enable high quality solutions over time.
Very good communication skills and the ability to defend your opinion.