Trabajo de Software Development Engineer en Alia, Ciudad de México - México

Software Development Engineer

Essential Responsibilities:

 

·          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.

 

Qualifications:

 

·          Education and Experience -

o    B.S. in Computer Science, Computer Engineering, or Software Engineering with 5 years’ work experience.

·          Programming Languages - Knowledge of and experience working in at least two (2) (or deep expertise in at least one) of the following high level languages: Java , C++, C# (.NET Framework), Scala.  In web-development oriented roles, JavaScript.  SDEs should be comfortable working across multiple programming languages given reasonable opportunity to adapt.

·          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.

·          Client-Side Development - Working knowledge of client-side development frameworks, including at least one area of expertise in either web-oriented frameworks (HTML, JavaScript), thick client application development (Windows or Mac, for example), or native mobile application client development (iOS/Swift, Android).

·          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