Scroll To View More
Ahmet Shapiro-Erciyas

Ahmet Shapiro-Erciyas

Seattle, WA, United States
Member since September 4, 2016
Ahmet has over five years of industry experience in Java. He's also led the internal AngularJS training at Target and has developed iOS apps with more than 8,000 downloads. A work highlight was when Ahmet solved the unique problem of estimating a user's current location within buildings; the building hindered the weak satellite signals that his Sky Walker app (iOS) needed. He's also a US-certified chess master (top one percentile).
Ahmet is now available for hire
  • Java, 6 years
  • GitHub, 3 years
  • AngularJS, 2 years
  • iOS, 2 years
  • Swift, 2 years
  • Firebase, 2 years
  • Angular, 1 year
  • Redux, 1 year
Seattle, WA, United States
Preferred Environment
Linux/iOS, Xcode, IntelliJ IDEA, GitHub
The most amazing...
...thing I've coded is the skyway navigation application that generates routes based on an A* search algorithm.
  • Senior Software Engineer
    2016 - 2017
    • Developed an assortment data-filtering tool which utilized memorization for caching commonly queried data using AngularJS.
    • Created REST service endpoints in Java and Spring that provided forecasting data for product assortments.
    • Refactored and migrated a coupled front-end codebase (jQuery and AngularJS) into a reusable and tested AngularJS app which improved scalability and code longevity.
    • Led a comprehensive AngularJS 1.2 awareness course for interested engineers which included senior engineers as well as architects to further promote deep understanding around AngularJS topics such as the digest cycle, controllers, views, services, states, unit testing, and more.
    • Led a ten-week Clean Code (Robert C. Martin) book club to promote robust code production and maintainability. Some of key topics covered were the single responsibility and open/closed principles, objects vs data structures, and how they play their roles in procedural vs OO design, and more. These were important subjects as it allowed our team to write more concise and easier-to-understand code/tests as a result of the modularization and decoupling of our code base.
    • Designed migration plan from AngularJS to Angular 2.
    Technologies: Java, JUnit, Spring, MongoDB, AngularJS, Jasmine, Protractor
  • Software Engineer | Architect
    2015 - 2016
    Sky Walker | Minneapolis Skyways
    • Designed and developed a skyway navigation app for the skyways of downtown Minneapolis (in total 13 miles long).
    • Handled the numerous design challenges presented in the app design and came up with a number of innovative solutions. More details can be found in my portfolio.
    Technologies: Swfit, Google Places API
  • Software Engineer
    2012 - 2016
    Thomson Reuters
    • Ensured data consistency across local and external databases by developing automated content audits which provided saving costs in manual labor with an internal rate of return of 68.3% over 5 years.
    • Developed a content search tool with content management functionalities such as filtering and pagination in AngularJS.
    • Built REST endpoints that provided legal document data via Groovy which utilized Spring and Hibernate frameworks.
    • Completely migrated the front-end of an old legacy application which used Java Server Pages and now it uses AngularJS.
    • Built new content management applications (included marshalling and batched content audits) as part of a team using OO best practices and Agile methodologies to create a maintainable and reusable code base which provided content management functionalities for multiple groups of internal clients.
    • Performed code reviews and provided feedback for colleagues throughout different projects on a regular basis.
    • Collaboratively gathered requirements from multiple groups of internal clients through sprint planning meetings; also demoed at sprint review meetings.
    Technologies: Java, Groovy, JUnit, Mockito, Spring, Hibernate, AngularJS, MySQL
  • Sky Walker (Minneapolis Skyways) | Skyway Navigation App (Development)

    Designed an app for the skyways of downtown Minneapolis (13 miles long).

    Design Challenges and Solutions:
    1. Well-known algorithms that produced the closest route (i.e. Dijkstra’s) took ~15 seconds.
    - Solution: Improved the route generation time to ~1 sec.

    2. Bad user location accuracy due to weak satellite signals
    - Solution: Used the pedometer of the device to calculate the user’s current location based on the distance that they’ve traveled, and to use the device GPS only when the reading is within 5 meters of accuracy; the user could also long-press anytime to update their location.

    3. General user ignorance of where North actually was.
    - Solution: Use the magnetic heading of the device to make the map view always point out where the user needed to be heading; so if the user rotates their device, the map on the screen will still point in the right direction.

    4. Confusion about the skyway route since they didn’t always start from the second floor and users often missed a semi-hidden gateway which would lead to the user distrust.
    - Solution: Different levels within the route were labeled with different colors. This way the user knows to look out for an escalator or elevator when the route’s color changes.

  • Tickler Among Us | Game (Development)

    Created a real-time multiplayer, rapid-touch iOS game

    Design Requirements and Technical Details:
    1. Real-Time Player Interaction
    - Uses the Firebase real-time database to allow clients to keep an open socket connection to the back-end server which allows players to send and receive their game inputs in real time.

    2. Search Through a Large List of Games
    - Implements a filter for games by a keyword that is updated on each keystroke.

    3. Views with Minimal Memory Consumption
    - Uses unwind segues for easy deallocation of memory for unused views.

    Additional features include background audio during gameplay and game winner animation.

  • Recipe Manager (Development)

    A sample Angular 2 web application to create, read, update, or delete recipes as well as add recipe ingredients to a grocery list.

    The back-end uses Firebase to persist recipe and ingredient entities. An email sign-in required.

  • Angular Change Detection and the OnPush Strategy (Publication)
    Out of the box, Angular provides two different change detection strategies: Default and OnPush. Each strategy has its own advantages, but sometimes it is easy to miss a nifty optimization opportunity if you stick to the default strategy. In this article, Toptal Freelance Software Engineer Ahmet Shapiro-Erciyas walks us through the available change detection strategies and shows how to use them in any Angular project.
  • Languages
    Java, JavaScript, Swift
  • Frameworks
    Angular, AngularJS, Protractor, Jasmine, Mockito, JUnit, Hibernate, Spring, Redux
  • Tools
    IntelliJ IDEA, Xcode, Git, GitHub, NPM, Maven
  • Libraries/APIs
  • Platforms
    iOS, Firebase, Heroku
  • Storage
    MongoDB, MySQL
  • Bachelor of Science degree in Mathematics and Computer Science
    2007 - 2012
    Hamline University - Saint Paul, MN, USA
I really like this profile
Share it with others