Badges
Certifications
allon_guralnek has not earned any certificates yet.
Work Experience
Tech Lead
Gigya•  March 2019 - August 2019
• Led the development of various projects including integration projects abroad between the company and it's acquirer (SAP). • Successfully developed and delivered projects outside my field of expertise under stringent time constraints, being responsible for it from conception to delivery during a shifting and uncertain product and requirement landscape. • Quickly learned and integrated new technologies and tools into projects, worked closely with experts that were brought in to gain all the needed expertise during their limited time, trained others in that knowledge and handed off entire projects for further development. • Assisted teams that required outside help, trained junior developers, and coordinated and aided cross-team efforts.
Software Team Lead
Gigya•  May 2018 - April 2019
• Responsible for a team of three developers. Working in Scrum, providing technical guidance and mentorship. Managing team workload, employee satisfaction, deliverables and client commitments. Working with group leader to define user stories and high-level goals. • Ensuring high-quality deliverables by brainstorming possible client impact, rooting out implementation challenges, consulting with key member of other teams, clearly defining success criteria of tasks, thorough code reviews and ensuring good test coverage. • Planning and breaking down future features, defining roadmaps and providing ROM estimates. • Managing on-call duty, triaging production crisis events, remotely troubleshooting cross-team issues.
Senior Software Engineer
Gigya•  June 2015 - May 2018
• Creating a microservice framework from scratch for other development teams, eventually published as an open source project (github.com/gigya/microdot). Wrote most of the documentation/wiki there. • Developing significant parts of that framework, including a transparent-proxy based strongly-typed inter-service communication layer (JSON over HTTP) which includes distributed tracing and logging, client-side caching/memoization layer with configurable cache expiration policy and distributed revoking mechanism, building a reusable service chassis for hosting and bootstrapping, writing client-side load balancing and resiliency components, integrating with Microsoft Orleans (incl. communication with their team members). • Introducing dependency injection into the company and the codebase (as opposed to everything being static and untestable) and supporting developers with the learning process. • Took the lead to define the design guidelines, architecture goals and general ethos of the team. • Provided support and guidance to developers in other teams. Filled in for my team leader when on vacation or unavailable. • Introduced, integrated and supported various developer tools such as LINQPad, NuGet servers, mocking frameworks, Paket (package management), TeamCity, etc.
Software Engineer
Windward•  March 2013 - February 2015
• Rewriting large portion of a big-data analytical GIS backend to achieve three goals: --- Quality: Creating a comprehensive unit and integration test suite, replacing the existing manual QA lifecycle phase. Bringing the team on board a code-review process. Adding monitoring and alerts of various system metrics, technical and domain-specific. --- Scale: Optimizing and parallelizing most critical data processing pathways, rewriting some with scale and distributed execution in mind. --- Rapid Delivery: Breaking up a monolithic analytics engine into smaller components using a microservices architecture, which allows low-impact and low-risk continuous deployment into production. Responsible for creating and maintaining a TeamCity server that builds and packages, runs unit and integrations tests and deploys to test and production environments. • Problem solving at all levels: Research and bit twiddling of obscure RF communication protocols, finding fast, scalable and affordable big-data solution, finding creative ways to efficiently present large amounts of data to the user. • Finding and solving hidden order-of-magnitude performance issues in various places such as database, algorithms, infrastructure, storage, network and presentation. Improvements provided leaps in the amount of data that can be processed. • Diving deep into SQL Server to discover techniques for storing large amounts of data (more than int.MaxValue rows) while providing speedy access to the data and storing it in the minimal amount of disk space. • End-to-end responsibility, from requirement gathering, design, development, testing, deployment, monitoring and full accountability for the production environment. • Authoring and instructing a T-SQL course for the company's analyst team, and providing on-going support and additional training as needed.
Software Engineer
GreenRoad Technologies•  October 2010 - February 2013
• Development and maintenance of message-bus (MSMQ) connected services, which are highly multi-threaded and contain complex state-machine logic, having a high rate of messages. • Development of reusable components for use by all developers in the organization: centralized and efficient database access, serialization frameworks, bulking mechanisms, communications, caching, timing and synchronization, throttling, automation, etc. • Development of various public-surface APIs for components, for direct consumption or via WCF (using both IIS and self-hosting). The APIs logic is diverse, ranging from simple DALs to the coordination and orchestrations of many components and complex processes. • Development of tools for various purposes: a highly scalable load and functionality testing tool that emulates the behavior of networked hardware devices (tens of thousands of simultaneously emulated devices), presentation and visualization of data, system monitoring, database ETL tools, utilities to aid QA engineers, etc. • Designing and scripting databases for SQL Server 2008. • Administration and maintenance of a Continuous Integration (CI) servers based on JetBrain's TeamCity. • Technological pioneer: Introducing and assimilation of new technologies such as: Task Parallel Library, oData, ProtoBuf-net, PostSharp, MEF, SQL Compact, Entity Framework Code-First and more. • Analyzing and solving performance problems using profiling and instrumentation, diagnosing and resolving critical productions issues (including transient issues such as deadlocks and race conditions) via debugging, log analysis, source code review and dump file analysis. • Gathering requirements and writing specification and design documents while working closely with a product manager. Working closely with teammates while using agile development methodology, specifically Scrum. Emphasis on quality: design and code reviews, comprehensive unit and integration testing while aspiring for complete TDD.
Software Engineer
Israel Defence Forces•  May 2005 - October 2010
• Maintenance and development of new modules in a large human resources management system. • Development of Web Service-based APIs to bridge legacy and modern system. • Technical and technological lead of a new system providing integrated graphical solutions to a text-based legacy system: --- Designing the system architecture with a SOA approach, and creating processes to integrate and coordinate several independent systems. --- Development of a C#/WinForms client application with heavy use of Win32 Hooks for monitoring OS-level events while communicating with an Oracle Application Server-based web service. Deployment via MSI. --- Technical lead of a development team responsible for developing Java applications for coordination and monitoring of inter-system processes. The client application won a departmental excellence award in 2007 and the integrated solution as a whole won a departmental excellence award in 2008.
Education
Basmach - School for Computer Professions, Israel Defense Forces
Software Engineering, Certified Developer•  August 2015 - October 2015
Cirriculum includes: Abstract Data Structures and the C language Object Oriented Programming using C++ Windows and GUI development with Visual Basic 6 Network Programming Algorithms and Complexity Operating Systems
Lady Davis College
Software Engineering, Certified Technician•  September 2004 - June 2005
Curriculum includes: The C language, ADTs and Algorithms C++ and OOP SQL and Communications Operating Systems Fundamentals
Ostrovsky High School
Robotics, n/a•  September 2001 - June 2004
Robotics Curriculum includes: Basic electronics Building and robots from raw materials Embedded development with the Intel 8051 microcontroller Programming the Intel 8051 in ASM Using motors, motion sensor, heat sensors and IR detectors to build an autonomous Fire Fighting robot Software Curriculum includes: The Pascal programming language Basic data structures and algorithms Prolog as an AI engine Using Microsoft Access to develop database-driven applications
Links
Skills
allon_guralnek has not updated skills details yet.