$ 80,000 a 90,000
Tipo de puesto
Empleado de tiempo completo
· Code - Implement high-quality, fault-tolerant, clean, scalable, reusable, and maintainable GUIs, middleware business logic, Tideworks-generic APIs, tools and test automation suites in alignment with customer and product requirements and specifications.
· Design - Work with Business Systems Analysts to turn customer- or product-driven functional requirements into well-designed, sustainable software solutions.
· Debug - Resolve difficult issues, often times with little information, spanning across large and distributed systems.
· Triage - Efficiently reproduce reported software problems, analyzing logs, data, and system results to quickly resolve issues.
· Document - Ensure development activities always lead towards the growth of Tideworks’ collective knowledge through strong code-level and knowledge base documentation, including capturing software design details, configuration and deployment notes.
· Develop Expertise - Build a deep understanding of Tideworks’ products, customers, product configurations, and data. Thoroughly understand the state changes Tideworks’ products undergo as end users exercise the system across product boundaries.
· Support - Be available to help with critical customer issues that are reported to Tideworks’ Application Support personnel. This includes reproducing and documenting production issues, analyzing logs, or clarifying intended functionality.
· Empathize - Develop a strong empathy for Tideworks’ customers and their needs.
· Report - Track status on development activities accurately and in a timely fashion. Provide intuitive and organized reports to the team through regular SDLC activities and updating of SDLC tools.
· Learn - Display a passion for constant learning of new product features, technologies, and customer operational practices. Seek out information from peers about changes and document findings.
· Collaborate - Work extensively with cross-functional development teams, other Tideworks personnel, and Tideworks customers.
· Education and Experience -
o B.S. in Computer Science, Computer Engineering, or Software Engineering with 5 years’ work experience.
· Middleware Frameworks - Working knowledge of service oriented architecture (SOA), web services (SOAP), RESTful services, Microservices , API development, Message Brokers and/or Message Stream Processing technologies including higher level language-specific frameworks, such as Spring , WCF, Lightbend, Messaging (JMS, NMS, MQTT), JBoss, or other leading frameworks.
· Software Architecture - Working knowledge of modern software architecture principles, including application of caching, micro- and mini-services, modern data storage constructs and principles (caching, RDBMS, NoSQL), distributed development and modern software integration practices.
· Design Patterns - Demonstrable understanding of Object Oriented design patterns and real-world application of design patterns leveraging modern software frameworks. Deep understanding of software design pertaining to separation of responsibilities, MVC, encapsulation, pragmatic usage of inheritance versus compositional logic , and intelligent application of polymorphism are critical.
· Automation Testing - Working knowledge of white-box language-specific Automation Test frameworks (such as JUnit or NUnit), and ability to code test automation successfully to exercise unit, integration, and regression testing scenarios are required.
· Scripting - Working knowledge of platform-specific scripting platforms ( Linux /Mac BASH/KSH or Windows Powershell) and associated coding skills, and working knowledge of at least one scripting language (Python, Perl, AWK, Groovy , Lua, Ruby, or other).
· Data Storage & Access - Working knowledge of modern data storage and access technologies, including caching, application of NoSQL, Key/Value, and RDBMS datastores. Deep understanding of SQL, including understanding of views and stored procedures. Experience in PL/SQL and Oracle a plus.
· Logging - Working knowledge of at least one key language-specific logging framework (log4j, logback, slf4j, NLog, log4net, Boost, or other) and demonstrable understanding of the purpose and value of logging.
· Concurrency - Working knowledge of multi-threaded software development, including management of threads, thread pooling, deadlock avoidance, executors, and other fundamental concurrency concepts.
· Build and Deployment - Working knowledge of at least one language-specific build framework (ability to set up, execute, and script the framework) as well as familiarity with at least one automated deployment framework (Ansible, Chef, Puppet).
· IDEs, SCM, & Tools - Detailed knowledge of at least one Integrated Development Environment (IDE), including hotkeys and efficiency mechanisms of that IDE, along with a detailed understanding of the workings of an SCM tool (Perforce, Subversion, Git ).
· SDLC - Experience working in an Agile SDLC environment, and working knowledge of at least one Agile SDLC tool to manage workload (i.e. VersionOne, JIRA , Rally).
· Communication - Excellent written and verbal communication skills.
· Culture - Must be able to work in a dynamic, varied, and fast paced environment. Flexibility,
Work environment :
· Required job duties are normally performed in a climate-controlled office environment.
· Exposure to computer screens.
· The noise level in the work environment is usually moderate
· Ability to travel up to 5% (both domestic and international) occasionally needed
· Occasional on site exposure to marine and rail terminal operating environments