Curriculum Vitae
PDF FORMAT
Download CVGeneral Info
- Name: Svetlozar Kostadinov
- Location: Sofia, Bulgaria
- Nationality: Bulgarian
- Born: 18 April, 1983
- Languages:
- Bulgarian (native)
- English (technical)
Photo
V-Card
Scan with a QR Reader app to get my contact info in your phone:
Education
- BSc in Computer Sciences - Technical University of Varna
Personality
- Strong ability to self-motivate;
- Enjoys friendly teamwork but can also work and solve problems fully autonomously;
- Fast learner, loves to acquire new skills and develop existing ones;
- Tries to keep up with latest trends in technology and IT market;
- Has keen attention to detail;
- Loyal and word keeping;
- Challenge-driven;
- Favorite things: coffee, reading, sea diving, ski, cycling;
Technical Skills
- Programming Languages: Java (advanced), Kotlin (advanced), C/C++ (old, not practiced recently);
- Other Languages: SQL, HTML, XML, XSLT, CSS;
- Mobile Technologies: Android SDK, Android NDK, Location, Camera, Notifications, Google Maps, Sensors, Media;
- RDBMS & ORM: SQLite, Spatialite, GreenDAO;
- Debugging tools: DDMS, Logcat, Stetho, Timber, LeakCanary, ACRA, Crashlytics, Eclipse MAT;
- Testing tools: jUnit, Mockito, Espresso, UIAutomator;
- Version Control Systems: Git, Mercurial;
- IDE: Eclipse, Android Studio, Intellij IDEA, Visual Studio, Atom;
- Operating Systems: Ubuntu Linux, Windows;
Niche & Other Skills
- Geospatial: Maps, Map projections, geodetic datum transformations, Proj4, Spatialite, Georeferencing, Hands-on experience with WFS, WMS web services, GeoServer, GeoNode, Django, MBTiles, GeoJSON, TopoJSON;
- Image processing: Image processing, OCR & text recognition with OpenCV/Python
- Graphics and geometry: 2D and 3D analytic geometry, CAD, OpenGL, Direct3D (basic, old);
- Web: Jekyll, WordPress, Xoops, Drupal, website administration & CMS management;
- Multimedia: Inkscape, Photoshop;
Experience
-
Android developer
Endava
Architecture and development of a native Android payment SDK for a large European payment service provider. Responsible for creating a pluggable framework, API design and extensible UI components for handling various payment methods (incl. credit cards + 3DS, SEPA, PayPal, etc.). I worked over card scanning feature using camera and OCR. I participated in the design of the security scheme appropriate for mobile SDK authentication.
Tools: Kotlin, Coroutines, OkHttp, Retrofit, Moshi, REST, JSON, Material Components, ViewModel, LiveData, Chrome Custom Tabs, JUnit, Mockito, Robolectric.
-
Android & Python developer
Endava
The customer was in the wrist watch industry. The project had Android and iOS applications and complex image recognition backend logic. The client is a worldwide electronics company, primary known for its watches; it is also the core company is a Japanese global corporate group based in Tokyo.
I had 2 distinct roles in the project:
- Python backend developer May 2018 – June 2018
Implemented a small image recognizer backend with Python and Google Cloud Vision API. Image pre-processing, calibration and analysis with OpenCV. Post-processing with various Machine Learning techniques for optimizing the recognition rate. The recognizer was written as a standalone Python command line tool which then was wrapped into a Java Spring REST service. The system was able to recognize a concrete watch model from a photo within >90% probability.
Technical skills and tools: Python, Google Cloud Vision API, OpenCV, image processing.
- Android developer July 2018 – Sep 2018
I was responsible for developing the Android client. It was a non-Material style app with about 16 screens and relatively complex navigation flows. The app included camera, files downloader, authentication with Facebook and Google accounts, notifications, synchronization with the REST backend. I have combined successfully some latest technologies and advancements in the Android industry: 100% Kotlin, MVI fully reactive unidirectional flow, immutable models. The result was a stable app with a small, easily testable and clean codebase.
Technical skills and tools: Android: Kotlin, KotlinX, Dagger-Android, OkHttp3, Retrofit2, RxJava2, Moshi, Mosby-MVI, Fotoapparat, ThreeTenABP, Glide, Timber, LeakCanary, Junit, Espresso, Mockito.
-
Android Developer
Indie
End-to-end developer and designer of MovieLovers - an Android app for cinema and TV fans. Provides a comprehensive information about movies, shows and celebrities. The accent of the app is Material Design with a lot of attention to detail.
- Unidirectional reactive architecture based on Mosby-MVI.
- Separated Data/Domain/Presentation layers and fully immutable models.
- Consuming RESTful web services, pagination, disk and memory caching, full state restoration.
- Can operate fully offline with connectivity alerts.
- Using nested
RecyclerView
s with layout performance optimizations via sharedRecyclerView
pools, image preloading and more. - Heavy use of imagery, custom-crafted animations, transitions and other visual effects.
- Gesture navigation.
App is available for free at:
Environment: Kotlin, RxJava2, Dagger2, Retrofit2, TMDB, GSON, Glide, Mosby-MVI, Conductor, PaperParcel.
More details and screenshots: Portfolio.
-
Android Developer
Hi-Tech Research & Consulting, Varna
End-to-end developer of GeoWorld app - advanced Android geocoordinate converter for geodesists and field surveyors. Offers unique features on the market. Role highlights:
- Solo developer responsible for all stages of the development lifecycle - from idea to maintenance, including deployment, localization, end-user documentation, analytics, customer tech support.
- Designed and implemented responsive UI/UX in portrait and landscape for phones and tablets following Material Design guidelines with usage of simple animations. Early adopted the new Material appearance.
- Very good understanding of the Java OOP design patterns and paradigms like Clean Architecture, MVC, MVP and MVVM.
- Gained in-depth knowledge of the Android platform, tooling and the Support libraries.
- Proficient in subjects like: Dependency Injection, Data Binding, SQLite for offline database storage, Accounts and sync.
- Fluent in multi-threading with
Thread
,Handler
,AsyncTask
,Service
,IntentService
,Loader
,RxJava
. - Extensively worked with the most used widgets like
RecyclerView
,DrawerLayout
,CoordinatorLayout
,ActionBar
,ViewPager
,CardView
,ProgressBar
, fragments, layouts, dialogs, toasts, implemented custom widgets with canvas drawing, full-screen activities. - Crafted XML layouts with precise measurements complying the Material Design spec.
- Experience with Android API’s like Intents, Runtime Permissions, Notifications,
ContentProvider
,AccountManager
, Camera, Sensors, GPS, Location Service, Files API, Internal/External Storage, File and Document Providers,MediaStore
,MediaPlayer
API. - Experience with Google Maps API and Google Places API.
- Implemented an in-app store for monetization based on unlockable app features and content using the In-App Billing library.
- Implemented banner and interstitial Ads with AdMob and Ogury.co.
- Awareness of the common pitfalls and quirks associated with Android development.
- Extensively used libraries like RxJava, Dagger2, GreenDAO, Picasso, Retrofit, GSON, OkHttp, Jsoup, JodaTime, ButterKnife, Parceler, PaperParcel, EventBus, Binding-collection-adapters, KotlinX, Timber, Stetho, DexCount.
- Experience with RESTful web services, HTTP authentication, OAuth2, XML, JSON.
- Experience with scraping HTML web sites and using them as emulation of REST API with the help of Retrofit and Jsoup.
- Experience in database design using SQLite and Spatialite.
- Refactored a large fragment-based codebase into clean Reactive MVVM + Data Binding architecture.
- Experience in unit testing and integration testing on device and emulator using JUnit, Mockito, Espresso & UIAutomator.
- Implemented continuous integration using CircleCI for the project’s Git repository in BitBucket.
- Successfully set up ACRA bug reporting backend and Google Analytics and used it to collect anonymous data about runtime problems to keep the users from experiencing fatal crashes.
- Implemented a one-click APK publishing process for all app flavors and CPU architectures.
- Knowledge of integration, building and debugging of multi-architecture C/C++/JNI projects using Android NDK.
- Used Git and Mercurial as version control system (VCS).
- Refactored into Kotlin to improve code clarity and simplicity of core classes.
- Ported Spatialite database for use in Android as a geospatial engine: android-spatialite.
- Hands-on experience with hybrid apps using Cordova/PhoneGap.
- Hands-on experience with geospatial and map technologies like Spatialite, GeoNode, OsmDroid, OpenLayers, Leaflet, MapBox, MBTiles, GeoDjango, GeoServer, WMS, WFS.
- Studied the principles, standards, methods, categories of geospatial map projections and coordinate transformations, geodetic datums and successfully applied the knowledge into a complete product.
- Written a detailed 70 page end-user manual in Google Docs with screenshots, diagrams, tables and styles.
- Designed a vector logo and multiple icons in InkScape.
More details and screenshots: Portfolio.
-
Java SE Developer
Hi-Tech Research & Consulting, Varna
PanelHome3D is an innovative Java desktop CAD software developed for companies, producers of polystyrene panels for building construction. Heavily customized fork of the popular open-source project SweetHome 3D. Sketching of simple construction plans of buildings. Analyzes the entire building geometry (walls, floor, ceiling, roof) and automatically generates a list of precise geometry shapes of the sliced panel pieces. The output geometry data is collected and formatted into a book of printable sheets. This book is a plan for the construction workers to assemble to panel pieces into complete buildings.
Environment: Eclipse, Java SE 6, MVC, XML, Swing, AWT, Canvas, JIDE UI toolkit, Substance, Flamingo, JavaGeom, jMonkeyEngine, JNLP, Applet.
- Solo developer of the project (the fork);
- Implemented custom Swing MVC components;
- Heavy use of AWT Canvas and 2D graphics;
- Implemented Print Preview zoomable page layout;
- Developed a Roof editor (3rd party algorithm);
- Developed a Wall editor;
- Developed a 2D polyline sketcher with advanced snapping;
- Implemented dynamic 3D scene view with jMonkeyEngine.
More details and screenshots: Portfolio.
-
C++ Developer
Hi-Tech Research & Consulting, Varna
Buildware 3D is a Windows CAD modeler software from the early 2000s written in C++ and based on the OpenCASCADE engine and OpenGL. Has 2D/3D modelling environment for interactive construction of geometry primitives, coordinate systems, layers, snapping, print layouts, property list UI. Heavy use of COM (the predecessor of .NET). Has a small core and modular design for high flexibility and extensibility through a custom plug-in framework based on COM interfaces. I was a member of the team of 3-5 developers.
Environment: Visual C++, MFC, COM, ATL, IDL, WinAPI, GDI, OpenGL, OpenCASCADE, Prof-UIS.
Highlights of my participation in the project:
- Working with very large codebase;
- Extending the existing codebase with additional features, improving legacy code, bug fixing;
- Responsible for the GUI and the plug-in subsystems;
- Implementing COM plugins which provide interactive operations over visual geometry objects like polylines, splines, boxes, prisms and more.
- Boolean operations (Cut, Union, Intersection);
- 2D operations (Move, Rotate, Mirror, Scale);
- 3D operations (Fillet, Chamfer, Extrude);
- Integration of the Prof-UIS MFC GUI library: implementing multi-pane layout, tree-view, toolbars, menus and a multi-selection PropertyGrid with binding to COM objects;
- Participated in an effort to integrate a parametric CAD modelling core provided by OpenCASCADE.
More details and screenshots: Portfolio.
-
BSc in Computer Systems and Technologies
Graduated from Technical University of Varna.
-
Secondary education
Gymnasium of Finances and Economics - Dobrich.
-
First PC
Started learning computers and programming on my first PC: 386DX 40 MHz. My first programs were Turtle graphics in Basic and Pascal.
-
Hello World!
Born in Dobrich, Bulgaria.