Tacit Knowledge is a software solutions consultancy, specializing in E-commerce, with roots in Silicon Valley. With offices in North America and Europe, we’re a community of like-minded people who craft sustainable software solutions and care about the success of our teammates and clients.
Our business is built on the foundation of attracting, growing and retaining a talented and motivated team. We encourage our employees to speak up, use their initiative and take responsibility.
Problem solvers at heart, we love complex challenges and we've never encountered a problem for which we couldn't find a solution. We leverage our collective experience to deliver optimal results across a broad spectrum of business and technology challenges.
About Software Engineering team:
Our development team is at the core of our company, being the essence of who we are. It’s by the virtue of every single engineer’s effort that we are capable to ensure the success of the applications and systems we build. Being part of our development team is both challenging and rewarding - it’s quite an effort to envision the architecture of a future to-be-built system, and at the same time it’s a thrilling experience to see a system going live. To accomplish all that our engineers take part in diverse project activities:
- Understand customer’s needs and provide guidance during project’s discovery phase
- Bring ideas to the table that shape system’s architecture
- Work closely with DevOps team to ensure that infrastructure meets all the necessary requirements and can sustain application’s needs
- Engage into intriguing discussions with Business Analysts and Quality Assurance folks on the subject of how we can ensure that our solution perfectly meets customer’s necessities
- Identify required tooling and frameworks that would make a perfect technological symbiosis
- Perform highly detailed system analysis to determine weak points of the system and collectively come up with a specifically targeted solution
- Share your expertise and learn from the colleagues through pair programming sessions, estimations, peer code reviews, and lots of interesting discussions on technical topics throughout a day
- At Tacit Knowledge you will:
- Have a chance to embrace a truly Agile environment with its bells and whistles - Standups, Estimations, Retrospectives, etc
- Be part of a like-minded team that is result & technology-driven
- Find yourself engaged in challenging technical discussions that are meant to solve real world problems
- Take part in architectural decisions and see those take shape in the form of top notch quality code
- Apply Pair Programming practice with your teammates to build an elegant solution to a complex problem
- Have a chance to work side by side with DevOps team to understand and build Continuous Integration/Continuous Delivery pipelines
- Work closely with Quality Engineers to ensure your solution complies with the quality standards
- Take part in Performance Optimization exercises - simulate high load using tools like JMeter, perform system analysis, apply tuning to the system, and draw conclusions
- Play a friendly match of ping pong whenever you fix a broken build ;-)
- 6+ years in developing software programs in a highly technical environment
- Experience in working with enterprise-level application servers and web application frameworks on any of the platforms - J2EE or .NET
- Good understanding of Project Life Cycle
- Understanding of Continuous Delivery (CD) / Continuous Integration (CI) concept
- Good understanding of Design Patterns and their applicability
- Strong advocate of TDD. Hands-on experience with Mockito and Spock. Understanding the difference between Smoke, Integration, Unit and Performance tests
- Experience in providing expertise on database optimization
- Familiarity with Scrum or Extreme Programming project methods
- Advanced knowledge of English
- Experience in communication with clients coming from a range of industries.
- Knowledge and/or experience with J2EE and JVM-based frameworks. Or if you have a proven track record of .NET platform experience that spans from enterprise-level application development to understanding the peculiarities of deployment activities, and have a desire to try yourself in the shoes of a Java developer
- Understanding of e-commerce technologies.
- Understanding of the concepts such as CMS, CDN, DAM
- Understanding how Web technologies fit together
- Understanding benefits of virtualized environments. Exposure to Docker
- Experience with Gradle, Ant, Maven
- Experience in performance testing and analysis with tools such as JMeter
- Hands-on experience with troubleshooting issues in production environment
- Experience in a professional consulting environment