Principal Software Engineer
TraceLink’s software solutions and Opus Platform help the pharmaceutical industry digitize their supply chain and enable greater compliance, visibility, and decision making. It reduces disruption to the supply of medicines to patients who need them, anywhere in the world.
Founded in 2009 with the simple mission of protecting patients, today Tracelink has 8 offices, over 800 employees and more than 1300 customers in over 60 countries around the world. Our expanding product suite continues to protect patients and now also enhances multi-enterprise collaboration through innovative new applications such as MINT.
Tracelink is recognized as an industry leader by Gartner and IDC, and for having a great company culture by Comparably.
As a Principal Software Engineer, you will be responsible for the design, development, and maintenance of microservices that interface with data at a large scale, as well as all related activities within the application development process.
Develop software that takes the best advantage of our cloud-based, fully distributed architecture.
Provide architectural input for software development efforts utilizing a thorough understanding of various technologies such as web applications, relational and NoSQL databases, information security, and cloud-based services.
Research and remain informed of new technologies and tools, and how such technologies could be applied at TraceLink; recommend extension, expansion, and update of technology standards, practices, and methodologies.
Actively participate in all phases of the software development lifecycle
Collaborate with product owners, other product stakeholders, and team members
Review and analyze current systems and processes, matched against user needs and business requirements to determine technical requirements
Work closely with our QA team; assist with test planning, implementation, and execution
BS or MS degree in computer science or engineering or equivalent required
10+ years of software development experience, Java preferred
Experience with SQL or NO-SQL databases
Experience with designing large-scale distributed systems
Experience with key-value data stores such as RocksDB, Lucene is a plus
Knowledge of LAN/WAN Data Replication is a plus
Multi-node database knowledge a plus
Experience with RxJava, Vert.x, or other reactive programming is a plus
Experience with software development best practices: version control, defect tracking, unit testing
Ability to communicate effectively and clearly, and collaborate with other disciplines
Excellent technical leadership and mentoring skills
Self-motivated, results-oriented, and comfortable setting and meeting deadlines
Proven experience in debugging complex issues